我有一种情况,当用户按下刷新按钮时,我想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
答案 0 :(得分:0)
reload
,而不是记录数组。
要完成,重新加载在promises中也不存在,如果它是一个承诺,你需要then(...)
来获得真实的记录(对于异步关系也是如此)。
promise.then(function(record){
record.reload();
});