我有一种情况,其中DS.RecordArray上的isLoaded更改为true但RecordArray的content,length属性仍然为空,此时为0且仅稍后更改.
示例代码(coffeescript):
@set('followRequests', App.FollowRequests.find())
...
whenDataLoads: (->
console.log @get('followRequests.isLoaded')
console.log @get('followRequests.length')
@set('content', @get('followRequests').toArray() )
).observes('followRequests.isLoaded')
Run Code Online (Sandbox Code Playgroud)
第一个日志语句为true,第二个为0,使用此数据的模板为空.当我看到实际的AJAX请求时,我看到请求确实返回了一组记录.RecordArray的长度和内容确实会在以后的某个时间发生变化,如浏览器控制台中所示:
App.Router.myController.get('followRequests').get('length') ---> 12
但是这个代码(下面)确实填充了模板中的内容,但它运行了12次......
whenDataLoads: (->
console.log @get('followRequests.isLoaded')
console.log @get('followRequests.length')
@set('content', @get('followRequests').toArray() )
).observes('followRequests.length')
Run Code Online (Sandbox Code Playgroud)
知道RecordArray何时完全填充的正确方法是什么???