2013-03-26 29 views
0

我在我的項目中使用了mixins(EXT Js 4)。我有以下結構。兩個類名爲Class A和Class B,具有以下功能。Mixin中具有相同功能的多個類

Ext.define('ClassA', {   
    classAFunction: function() {  
     alert("ClassAFunction in class A");   
    }   
}); 

Ext.define('ClassB', {   
    classBFunction: function() {  
     alert("ClassBFunction in class B");   
    }, 

    classAFunction: function() {  
     alert("ClassAFunction in class B");   
    }   

}); 

在我的控制器中,我使用mixins來擴展控制器的功能,如下面的代碼所示。

Ext.define(Site_Controller', { 
extend: 'Ext.app.Controller', 

views: [ 
    'ui.Site_View' 
], 

mixins: { 
    classA: 'ClassA',   
    classB: 'ClassB' 

}, 

init: function() { 
    this.control({ 
     'MainPanel button[action=save]':{ 
      click: this.CreateSite 
     } 
    }); 
}, 

CreateSite: function() { 

    alert("HELLO"); 
    this.classAFunction; 
    this.classBFunction; 
} 

}); 

我調用控制器的方法來控制點擊按鈕,該按鈕存在於視圖中。所以當首先調用createite方法時,我得到了「HELLO」,而不是classAFunction調用,它給了我「ClassA中的ClassAFunction」。所以它調用classA函數但是我想調用classB中存在的ClassAFunction。所以在extjs我如何實現這一點。

在此先感謝。

回答

1

可以訪問混入並調用函數直接

this.mixins.classB.classAFunction.call(this); 
相關問題