Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js ember model.reload()不是函数吗?_Ember.js_Model - Fatal编程技术网

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 get
this.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();
  }
}