1

在 Extjs 中,我试图accrued从变量中选择一个值Store

在此处输入图像描述

我试过了:

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

上面的一个不起作用。我收到错误:

未捕获的类型错误:无法读取未定义的属性“数据”

每当我添加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})

更新 - 更深入一点

on这个小词将事件的侦听器应用于组件。它将可用于混入Ext.util.Observable的类,其中我应用的最后一个参数标识该侦听器在被调用一次后应该被删除。这对匿名侦听器很有用,因为否则您无法取消注册它们。

加载(此,记录,成功,eOpts)

参数

  • 这:Ext.data.Store
  • records : Ext.data.Model[] 一个记录数组
  • success : Boolean 如果操作成功,则为 True。
  • eOpts : Object 传递给 Ext.util.Observable.addListener 的选项对象。

因此,records 参数包含当前加载操作返回的所有记录。

于 2013-03-13T07:42:53.097 回答
2

存储加载是异步的。记录时,尚未加载值。

控制台始终显示对象的最新版本。您需要监听商店加载事件。

于 2013-03-13T06:51:39.493 回答