假设我有这个:
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
?
答案 0 :(得分:3)
您可以使用this._super()
从超类中调用方法。通常最好将此调用添加到您要覆盖的每个方法中。
App.ServicesEditController = App.BaseEditController.extend(App.ServicesMixin, {
setupController : function (entry) {
this._super(entry);
}
});
扩展我的建议,为每个重写方法添加此调用,这是一个视图的Mixin示例。如果您的Mixin重写了didInsertElement,则应始终添加对this._super()
的调用。 这可确保在应用多个Mixins时调用“all”didInsertElement实现。
App.SomeViewMixin = Ember.Mixin.create({
didInsertElement : function(){
this._super();
// ... perform your logic
}
});