新的EmberJS .on('init')成语和继承

时间:2013-09-16 23:38:18

标签: ember.js

我被告知使用.on('init')而不是覆盖init(),以避免同步绑定和别名的问题。但是,我不知道如何使用这种模式处理继承中的调度顺序。

我以前做过:

var Superclass = Ember.Object.extend({
    init: function () { /* ... */ }
});

var Subclass = Superclass.extend({
    init: function () {
        // Init superclass first...
        this._super();

        /* ... */
    }
});

但是我不确定如何使用.on('init')成语正确地执行此操作:如何确保超类是初始化是在子类之前调用​​的?

  • 似乎如果我调用超类和子类.on('init')函数“onInit”,则只调用子类版本。这意味着我必须为每个新的子类发明新版本的名称(它已经无用且不需要名称....)?
  • 我可以选择总是使用名称onInit,并像以前一样使用this._super(),但是我担心这个语义可能不会被保护并且可能随时中断?

这是一个JSFiddle,说明了我遇到的问题和问题:

http://jsfiddle.net/9fctF/2/

0 个答案:

没有答案