Events 如何聆听';在init'之后;YUI 3.11中的视图事件
在YUI视图中,我有以下方法: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
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的状态: