2014-12-06 48 views
0

如何访问Ember.js模型项目通常我不得不这样做是为了获得项目:我没有使用foreach

setupController: function (controller, model) { 
     this._super(controller, model);  
     model.accounts.forEach(function (account) { 
      data.push(account.get("item")); 

      }); 
} 

相反,我只是想获得这样的第一个项目,但它返回undefined:

model.accounts[0] 

Edit__

帐户进来,像这样的路线:

model: function() { 

     return Ember.RSVP.hash({ 
     main: this.store.createRecord('main', {}), 
     accounts: this.store.find('account') 
     }); 
    }, 
+1

'model.get( '账户')firstObject'应该工作。 – 2014-12-06 17:43:48

+0

当我在我的路由的setupController方法中执行此操作时,未定义 – FutuToad 2014-12-06 17:52:44

+0

那么,您的模型没有'accounts'属性,或者'accounts'属性是空的,至少在您尝试访问它时没有。它应该从哪里来,在什么时候分配给模型,并确定它已经填充?如果“帐户”是异步拥有许多关系,则此时不会自动填充。 – 2014-12-06 17:55:08

回答

2

您可以创建一个数组代理。 然后,您将拥有一个名为firstObject的属性以及来自ember的许多其他方法。

myArray.get( 'firstObject')

下面是一个例子: http://emberjs.com/api/classes/Ember.ArrayProxy.html

+0

我的帐户模型已经从商店中出来。为什么我需要包装它和代理? **帐户:this.store.find('帐户')** – FutuToad 2014-12-07 11:10:23

+0

你有没有试过。 model.get('accounts')。get('firstObject'); – imahungry 2014-12-07 17:35:43