Events 如何聆听';在init'之后;YUI 3.11中的视图事件

Events 如何聆听';在init'之后;YUI 3.11中的视图事件,events,yui,Events,Yui,在YUI视图中,我有以下方法: initializer: function () { this.after('init', this.onInitComplete, this); }, onInitComplete: function (e) { console.log('onInitComplete'); var list = this.checkG

在YUI视图中,我有以下方法:

    initializer: function () {            
        this.after('init', this.onInitComplete, this);                        
    },

    onInitComplete: function (e) {
        console.log('onInitComplete');
        var list = this.checkGroupList = new CheckGroupList();

        var group1 = new Y.CheckGroupModel();            
        var group2 = new Y.CheckGroupModel();            
        var group3 = new Y.CheckGroupModel();            

        list.add(group1);
        list.add(group2);
        list.add(group3);            
        this.reset();
    },

为什么onInitComplete没有运行?

您的侦听器没有被调用的原因是YUI正在尝试优化
init
事件,因为在创建大量
Y.Base
实例时,该事件太昂贵。
init
事件通常负责调用所有初始值设定项。但是,如果没有侦听器,则直接调用初始化器函数,而不触发
init
事件。由于要在初始值设定项中添加侦听器,YUI假定事件没有侦听器,因此不会触发它


我建议您要么直接在初始值设定项中执行在侦听器中执行的操作,要么从类构造函数中将侦听器添加到事件中。

您的侦听器未被调用的原因是,YUI正在尝试优化
init
事件,因为在创建大量
Y.Base
实例时成本太高。
init
事件通常负责调用所有初始值设定项。但是,如果没有侦听器,则直接调用初始化器函数,而不触发
init
事件。由于要在初始值设定项中添加侦听器,YUI假定事件没有侦听器,因此不会触发它


我建议您要么直接在初始值设定项中执行在侦听器中执行的操作,要么从类构造函数向事件添加侦听器。

我现在实际上在初始值设定项中执行此操作,但是如何在类构造函数中添加侦听器呢?只有在不使用
Y.Base.create
的情况下才能执行此操作。YUI bug tracker中有一个问题,您可以在其中跟踪此bug的状态:我现在实际上在初始值设定项中执行此操作,但如何在类构造函数中添加侦听器?只有在未使用
Y.Base.create
的情况下才能执行此操作。YUI bug跟踪器中有一个问题,您可以在其中跟踪此bug的状态: