Ember.js ember js DS.AdapterPopulatedRecordArray内容

Ember.js ember js DS.AdapterPopulatedRecordArray内容,ember.js,Ember.js,现在在console.log@sub中显示零对象的内容 DS.AdapterPopulatedRecordArray:ember768>{query={…},content=[0],store=,more…} 但当我签入firebug DOM时,它会显示对象的内容 内容[17,18] 这里我做错了什么?如果您使用的是余烬数据,控制器阵列的内容没有立即填充,当您通过console.log请求其内容时,余烬数据返回一个承诺,一个空对象,RecordArray,其内容将在将来某个时候填充。当您检查DO

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

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

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


这里我做错了什么?

如果您使用的是
余烬数据
控制器阵列
的内容没有立即填充,当您通过console.log请求其内容时,余烬数据返回一个
承诺
,一个空对象,
RecordArray
,其内容将在将来某个时候填充。当您检查DOM中的内容时,内容已经被填充。验证这一点的更好方法是仅在内容已填充时调用console.log

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')
contentDidChange: function() {
  console.info(this.get('content'));
}.observes('content.isLoaded')