4

假设我有这个:

App.ControllerMixin = Ember.Mixin.create({
    setupController : function (entry) {
        ...
    }
});

App.BaseEditController = Ember.ObjectController.extend(App.ControllerMixin, {
    startEditing: function () {
        ...
        this.setupController(entry);
    },

});

App.ServicesEditController = App.BaseEditController.extend(App.ServicesMixin, {
    setupController : function (entry) {
    }
});

我该如何ControllerMixin.setupController打电话ServicesEditController.setupController

4

1 回答 1

3

您可以使用this._super(). 将此调用添加到您要覆盖的每个方法通常是一个好主意。

App.ServicesEditController = App.BaseEditController.extend(App.ServicesMixin, {
    setupController : function (entry) {
      this._super(entry);
    }
});

扩展我的建议,在每个重写的方法中添加这个调用,这是 View 的 Mixin 示例。如果您的 Mixin 覆盖了 didInsertElement,您应该始终添加对this._super(). 如果应用了多个 Mixin,这可以确保调用“所有”didInsertElement 实现。

App.SomeViewMixin = Ember.Mixin.create({
  didInsertElement : function(){
    this._super();
    // ... perform your logic
  }
});
于 2013-08-07T08:44:18.557 回答