2013-07-24 47 views
1

视图的“初始化后,”事件里面一个YUI视图我有以下几种方法:如何监听在YUI 3.11

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没有运行?

回答

1

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

我建议你在初始化器中直接在监听器中进行操作,或者在类构造函数中添加一个监听器给事件。

+0

我实际上是在初始化器中做的,但是我怎样才能在类构造器中添加一个监听器? –

+0

只有当您不使用'Y.Base.create'时才可以。这里有一个YUI bug跟踪器的问题,你可以在这里跟踪这个bug的状态:https://github.com/yui/yui3/issues/1043 – juandopazo