下面我提供了一个我“认为”应该起作用的例子,但没有。我的期望是,如果一个 Controller 从另一个 Controller 继承,那么它应该能够访问父类中提供的行为。我知道可以通过“需要”来实现相同的行为,但是我认为如果您可以继承行为会更清晰。

https://gist.github.com/4589210

最佳答案

您也可以使用 mixin 。这是什么?这是一种多继承。

App.Important = Ember.Mixin.create({
  sharedBehavior: function() {
    return "A winner is you!!!";
  }.property()
});

App.OtherImportant = Ember.Mixin.create({
  otherSharedBehavior: function() {
    return "A winner is not you!!!";
  }.property()
});

App.AnotherController = Ember.controller.extend(App.Important, App.OtherImportant, {
  importantStuff: function() {
    var ohBeehave = this.get("sharedBehavior");
    if(ohBeehave) {
      return ohBeehave;
    } else {
      return "FML";
    }
  }.property("sharedBehavior")
});

http://emberjs.com/api/classes/Ember.Mixin.html

关于ember.js - 是否可以通过继承而不是使用 'needs' 在 ember 中与 Controller 共享行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14447141/

10-13 21:28