我想在我的控制器中重新加载我的模型,然后从here
读取文档所以我定义了动作:在我的控制器中重新加载并路由两者,例如:
reload:function(){
this.get('model').reload();
}
当我使用this.send('reload')
触发操作时,出现错误 this.get(...).reload is not a function
,我是否误解了该文档?
答案 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()