在ember-data 1.0.0-beta中扩展ApplicationAdapter

时间:2013-09-22 10:03:25

标签: ember.js ember-data

在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');
  }
});

关于我做错什么的任何想法?如果你有更好的建议我应该把这些电话放在哪里,我真的很感激。提前致谢

1 个答案:

答案 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();
    }
  }
});