2013-07-24 49 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