0

在 ember-data v0.14 (pre beta) 中。您可以简单地扩展模型功能以添加额外的 api 调用,例如对帖子进行投票。

// ember-data v0.14
App.Post.reopenClass({
  vote: function(post_id) {
    return console.log('vote');
  }
});

但是在 ember-data beta 之后,这不再起作用了。所以我认为放置此代码的最佳位置是App.PostAdapter. 但是当我试图从App.ApplicationAdapter.extend它扩展时,它不起作用。

// ember-data beta (doesn't work)
App.PostAdapter = App.ApplicationAdapter.extend({
  vote: function(post_id) {
    return console.log('vote');
  }
});

关于我做错了什么的任何想法?如果您对我应该在哪里拨打此类电话有更好的建议,我将不胜感激。提前致谢

4

1 回答 1

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();
    }
  }
});
于 2013-09-22T18:14:34.360 回答