ember model.reload()不是函数?

时间:2015-07-30 06:38:37

标签: ember.js model

我想在我的控制器中重新加载我的模型,然后从here

读取文档

所以我定义了动作:在我的控制器中重新加载并路由两者,例如:

 reload:function(){
     this.get('model').reload();
   }

当我使用this.send('reload')触发操作时,出现错误 this.get(...).reload is not a function ,我是否误解了该文档?

3 个答案:

答案 0 :(得分:7)

检查您的模型不是集合。您只能重新加载记录。如果您的模型是集合,则应执行以下操作:

reload:function(){
     this.get('model').forEach(function(record){
        record.reload();
     });

   }

答案 1 :(得分:1)

试试这个:

import Ember from 'ember';

export default Ember.Route.extend({
 actions: {
 reload: function() {
   this.controller.get('model').reload().then(function(model) {
     // do something with the reloaded model
   });
  }
 }
});

在你的控制器中:

import Ember from 'ember';

export default Ember.Controller.extend({
 actions: {
  reload_model: function() {
     this.send('reload');
   }
  }
});

答案 2 :(得分:0)

要刷新Ember较新版本(v2.3 +?)中的模型,最好使用getOwner()获取相应的路线,并通过重新触发{{ 1}}挂钩,因此您不必依赖于特定于模型的方法(例如,如果模型是refresh()的结果,则它将没有model()方法)。

使用本机类/装饰风格的示例(当前为3.10):

findAll()