3
AppController = Ember.ArrayController.extend
cat_id: ''
subcat_data: (->
  App.Subcategory.find({ parent_id: @get("cat_id") })
).property('cat_id').cacheable()

categorySub: (->
 result = Ember.A()
 for category in this.toArray()
    @set('cat_id', category.id)
    @sub = @get("subcat_data")
    console.log @sub
    result.pushObject({
      category: category
      subcategories: @sub.toArray()
    })

result.toArray()
).property('@subcat_data', '@each')

现在在 console.log @sub 中显示零个对象的内容

DS.AdapterPopulatedRecordArray:ember768> { query={...}, content=[0], store=, more...}

但是当我签入 firebug DOM 时,它会显示对象内容的内容 [17, 18]

我在这里做错了什么?

4

1 回答 1

0

如果你使用Ember-data, an 的内容不会ControllerArray马上被填满,当你通过 console.log 请求它的内容时,Ember-data 返回一个Promise空对象RecordArray. 当您检查 DOM 中的内容时,内容已被填充。验证这一点的更好方法是仅在填充内容时调用 console.log。

contentDidChange: function() {
  console.info(this.get('content'));
}.observes('content.isLoaded')
于 2013-01-15T18:27:26.517 回答