2013-03-13 98 views
1

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

enter image description here

我想:

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

上面一个是行不通的。我得到错误:

Uncaught TypeError: Cannot read property 'data' of undefined

每当我添加items[0],它使变量未定义。

当我检查:

var newStore = Store.data.items.length; 

输出为: //?

但是我可以看到在Store变量中有项目,如上图所示。无论如何,我只想从变量Store中获得accrued的值。

我还检查:

var newStore = Store.data.items; 

输出是:[]

+0

存储或存储?第一个带有“S”的上行。 – coderLMN 2013-03-13 05:49:28

+0

对不起,这是错字。 'Store' @ JinZhaoWu – 2013-03-13 05:50:19

+0

尝试'for(x in Store.data.items)console.log(x);'确保索引确实是'0'? – techfoobar 2013-03-13 05:54:26

回答

4

嘿Mr_Green你应该考虑的API有时,因为这是真的直线前进;)Store load event

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

更新 - 更深入一点

微小字on将事件的侦听器应用于组件。它将适用于混合类Ext.util.Observable其中应用的最后一个参数标识此侦听器在被调用一次后应该被删除。这对于匿名听众很有用,因为否则就不能取消注册。

负载(这,记录,成功,eOpts)

参数

  • 这样的:Ext.data.Store
  • 记录:Ext.data。模型[]记录
  • 成功的数组:布尔True如果操作成功。
  • eOpts:Object将选项对象传递给Ext.util.Observable.addListener。

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

+0

+1不读取文档。 – 2013-03-13 07:49:55

+0

我将console.log()保存到生成的变量并检查变量值。它显示'未定义'。 (我仍然不明白你在这里做了什么,我正在努力) – 2013-03-13 07:53:12

+0

嘿它'记录[0] .data.accrued'。 :)。请更新它。现在工作很好。感谢+1。 – 2013-03-13 08:08:46

2

商店加载是异步的。在记录时,值尚未加载。

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

+0

感谢您的回复。你能解释我该怎么做吗? – 2013-03-13 07:05:29

+0

+1指向正确的问题 – sra 2013-03-13 08:13:28