1

accruedExtjsで、変数から値を選択しようとしていますStore

ここに画像の説明を入力してください

私は試した:

var newStore = Store.data.items[0].data.accrued;

上記のものは動作していません。エラーが発生しています:

Uncaught TypeError:未定義のプロパティ'data'を読み取ることができません

を追加するたびにitems[0]、変数が未定義になります。

私がチェックしたとき:

var newStore = Store.data.items.length;

出力は次のとおりです。0 //?

Storeしかし、上の画像に示すように、ここでは変数にアイテムがあることがわかります。accruedとにかく、変数からの値を取得したいだけですStore

私もチェックしました:

var newStore = Store.data.items;

出力は次のとおりです:[]

4

2 に答える 2

4

ねえMr_Green時々APIを調べる必要があります。これは本当に簡単だからです;)ストアロードイベント

Store.on('load', function(store,records){ 
    records[0].data.accrued; 
}, this, {single:true})

更新-もう少し詳しく

上の小さな単語は、イベントのリスナーをコンポーネントに適用しますExt.util.Observableをミックスインするクラスで使用できます。ここで、最後に適用した引数は、このリスナーが一度呼び出された後に削除する必要があることを示しています。これは匿名のリスナーに役立ちます。他の方法では登録を解除できないためです。

load(this、records、successful、eOpts)

パラメーター

  • これ:Ext.data.Store
  • records:Ext.data.Model[] レコードの配列
  • success:ブール値 操作が成功した場合はTrue。
  • eOpts:オブジェクトExt.util.Observable.addListener に渡されるオプションオブジェクト。

したがって、records引数には、現在のロード操作によって返されるすべてのレコードが含まれます。

于 2013-03-13T07:42:53.097 に答える
2

ストアの読み込みは非同期です。ロギングしているとき、値はまだロードされていません。

コンソールには、常に最新バージョンのオブジェクトが表示されます。ストアロードイベントをリッスンする必要があります。

于 2013-03-13T06:51:39.493 に答える