运行类方法时,Ember.js抛出“没有方法”错误

时间:2014-01-21 22:39:55

标签: javascript ember.js ember-data

我有一种情况,当用户按下刷新按钮时,我想reload模型。我之前使用Ember-Model实现了这个,然而,我们最近转移到Ember-Data并且在尝试从模型类运行任何method时收到错误。任何帮助将不胜感激。

单击按钮时出错:

Uncaught TypeError: Object [object Object] has no method 'reload'

应用程序的结构:

App.ApplicationAdapter = DS.DjangoRESTAdapter.extend({
  namespace: 'api/1'
});

App.SomeRoute = Ember.Route.extend({
  model: function() {
    return this.store.find('publishable');
  },
});

App.SomeModel = DS.Model.extend({
  title: attr(),
  description: attr(),

  authors: hasMany('author', { async: true }),
  category: belongsTo('page', { async: true }),

  published: attr(),
  publish_from: attr(),
  slug: attr(),

  contentType: attr(),
});

App.SomeController = Ember.ArrayController.extend({
  actions : {
    reload: function(model) {
      model.reload();
    }
  }
});

<div>
  <span {{action reload model}} class="btn"></span>
</div>

当我在控制器上的操作中记录this.get('model')时。我收到以下内容:

Class {type: function, content: (...), store: Class, isLoaded: true, isUpdating: false…}
__ember1390344611587: "ember592"
__ember1390344611587_meta: Object
_super: undefined
arrangedContent: (...)
content: (...)
get content: function () {
set content: function (value) {
isLoaded: true
isUpdating: false
store: Class
toString: function () { return ret; }
type: App.Publishable
__proto__: Object

1 个答案:

答案 0 :(得分:0)

个人记录中存在

reload,而不是记录数组。

要完成,重新加载在promises中也不存在,如果它是一个承诺,你需要then(...)来获得真实的记录(对于异步关系也是如此)。

promise.then(function(record){
  record.reload();
});