Ember.js ember model.reload()不是函数吗?
我想在我的控制器中重新加载我的模型,并从中读取文档 因此,我定义了操作:在我的控制器中重新加载,并将两者路由,例如:Ember.js ember model.reload()不是函数吗?,ember.js,model,Ember.js,Model,我想在我的控制器中重新加载我的模型,并从中读取文档 因此,我定义了操作:在我的控制器中重新加载,并将两者路由,例如: reload:function(){ this.get('model').reload(); } 当我触发使用this.send('reload')操作时,出现错误this.get(…)。reload不是一个函数,所以我误解了文档吗?尝试以下操作: import Ember from 'ember'; export default Ember.Route.e
reload:function(){
this.get('model').reload();
}
当我触发使用this.send('reload')
操作时,出现错误this.get(…)。reload不是一个函数,所以我误解了文档吗?尝试以下操作:
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');
}
}
});
检查您的模型是否不是集合。您只能重新加载记录。如果模型是集合,则应执行以下操作:
reload:function(){
this.get('model').forEach(function(record){
record.reload();
});
}
要在较新的Ember版本(v2.3+?)中刷新模型,最好使用getOwner()
获取相应的路由,并通过重新启动model()
钩子来刷新模型,这样就不必依赖于特定于模型的方法(如果模型是findAll()的结果)
,例如,它没有reload()
方法)
使用本机类/装饰器样式的示例(当前版本为3.10):
尝试this.controller.get('model').reload()代码>显示您的完整路线和控制器代码,并发布您的余烬和余烬数据版本,pleaseDEBUG:Ember:1.13.3调试:Ember数据:1.13.5调试:jQuery:1.11.3调试:Ember简单身份验证:0.8.0调试:Ember简单身份验证:0.8.0调用this.controller.get('model').reload()
I getthis.controller.get(…).reload不是一个函数
您是否正在调用某个reload\u model
操作?
import { action } from '@ember/object';
import { getOwner } from '@ember/application';
export default class MyController extends Controller {
@action async reload() {
// should probably be called refresh() for consistency
return getOwner(this).lookup('route:my').refresh();
}
}