Ember js等待控制器this.get请求/休息适配器滞后

时间:2014-02-24 00:25:43

标签: javascript ember.js

我试图在其各自的控制器中访问我的模型的内容,但它最初返回具有未定义属性的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);
  }
});

2 个答案:

答案 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);