我试图在其各自的控制器中访问我的模型的内容,但它最初返回具有未定义属性的promise,然后在第二次或第三次访问时返回该值。
从REST适配器检索数据会有延迟吗?
同样尝试在控制器中对请求使用'.then()'不起作用,因为我认为它仅用于路径。
App.EquipmentsController = Ember.ArrayController.extend({
getContentForMapping: function() {
console.log(this.get('model').objectAt(1).get('contractor.name'));
//returns undefined first time
}
});
奇怪的是,当我从循环中的模板视图访问模型的属性时,它会立即返回它们。
{{#each equipment in model}}
<p>{{equipment.contractor.name}}</p>
{{/each}}
以下是我如何设置路线。它正在抓取与特定网站相关的设备列表:
App.EquipmentsRoute = Ember.Route.extend({
model: function(){
//Get the model for the selected site and grab its equipment list.
return this.modelFor('site').get('equipment');
},
//Set the model we just grabbed above as the model to use in the controller
setupController: function(controller, model) {
controller.set('model', model);
}
});
答案 0 :(得分:2)
更改我们的API端点以支持旁加载似乎已经修复了我们在发出this.get('model')
请求时遇到的延迟。
余烬指南中有一小部分内容涵盖了此内容:http://emberjs.com/guides/models/the-rest-adapter/
答案 1 :(得分:0)
我认为错误在于App.EquipmentsRoute
的{{1}}功能。尝试设置setupController
属性,而不是模型钩子属性。
content
在
controller.set('content', model);