【发布时间】:2014-04-05 11:24:09
【问题描述】:
我想在 Ember.js 中的一个视图中包含多个 mixins,并且多个 mixins 和/或视图使用相同的事件(例如willInsertElement)。我正在运行 Ember 1.4.0-beta.5。
我知道每个 mixin 中的事件都会被视图覆盖。但是,我读过可以在 mixin 和视图中使用相同的事件挂钩,或者在同一视图中包含多个 mixin,方法是在 mixin 的上述事件方法的开头调用 this._super();。但是,我未能成功实现这一目标。因此,我的问题是,如何在视图和 mixin(或同一视图中包含的多个 mixin)中的同一事件挂钩中编写逻辑,以便调用每次事件挂钩中的所有逻辑。
这是一个例子:
App.StatsView = Em.View.extend(
App.DateFormatting, {
willInsertElement: function() {
// Some view-specific logic I want to call here
},
});
App.DateFormatting = Em.Mixin.create({
willInsertElement: function() {
this._super(); // This doesn't work.
// Some mixin logic I want to call here
},
});
注意这里的一种方法可能是不使用 mixin 而是扩展视图(因为 willInsertElement 是特定于 Em.View 的),但这在我们的应用程序中是不可维护的。
【问题讨论】:
标签: javascript ember.js mixins superclass super