2014-12-06 2 views
0

Обычно я должен сделать это для доступа к элементам:Как получить доступ к модели элемента ember.js без использования Foreach

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

      }); 
} 

Вместо этого я просто хочу, чтобы получить доступ к 1-й пункт, как это, но он возвращает неопределенное значение:

model.accounts[0] 

Edit__

счета приходят как и в маршруте:

model: function() { 

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

'model.get ('счета') firstObject' должен работать. –

+0

undefined, когда я это делаю в настройке моего маршрута. Метод контроля. – FutuToad

+0

. Итак, ваша модель не имеет свойства 'account', или свойство' account' пусто, по крайней мере, не в то время, когда вы пытаетесь получить к нему доступ. Откуда он должен прибыть, и в какой момент времени он привязан к модели, и вы уверены, что он заселен? Если 'account' является asynch hasMany отношением, он не будет заполнен автоматически в этот момент времени. –

ответ

2

Вы можете создать прокси-сервер массива. Тогда у вас будет свойство firstObject и множество других методов, встроенных в ember.

myArray.get ('firstObject')

Вот пример:. http://emberjs.com/api/classes/Ember.ArrayProxy.html

+0

Моя учетная запись уже появилась в магазине. Зачем мне его обертывать и прокси? ** accounts: this.store.find ('account') ** – FutuToad

+0

вы пробовали. model.get ('accounts'). Get ('firstObject'); – imahungry

Смежные вопросы