在ember-data v0.14(pre beta)中。您可以简单地扩展模型功能以添加额外的api调用,例如在帖子上投票。
// ember-data v0.14
App.Post.reopenClass({
vote: function(post_id) {
return console.log('vote');
}
});
但是在ember-data测试版之后,这不再适用了。所以我认为放置此代码的最佳位置是App.PostAdapter
。但是,当我试图从App.ApplicationAdapter.extend
延伸时,它没有用。
// ember-data beta (doesn't work)
App.PostAdapter = App.ApplicationAdapter.extend({
vote: function(post_id) {
return console.log('vote');
}
});
关于我做错什么的任何想法?如果你有更好的建议我应该把这些电话放在哪里,我真的很感激。提前致谢
答案 0 :(得分:2)
您应该能够将该方法包含在普通的类定义中(使用extend
),然后在任何活动对象上调用它。
App.Post = DS.Model.extend({
vote: function(post_id) {
return console.log('vote');
}
});
然后在其他地方,比如你的PostController
,你会有这样的事情(假设你的PostRoute
正在做正常的事情):
App.PostController = Ember.ObjectController.extend({
actions:{
recordVote : function(){
this.get('content').vote();
}
}
});