3
我們如何使用ExtJs MVVM模式擴展視圖?擴展視圖控制器綁定的視圖的正確方法是什麼?MVVM在視圖和視圖控制器之間具有繼承
我有它的viewcontroller的基礎視圖,我想擴展它,就像在this fiddle。
問題是基本視圖控制器中定義的方法在擴展視圖中不再可訪問。 ExtJs只能在擴展視圖控制器中查找要調用的方法。
Ext.define('Fiddle.view.Base', {
extend: 'Ext.panel.Panel',
requires: [
'Fiddle.view.BaseController'
],
controller: 'base',
tbar: [{
text: 'Base button',
handler: 'onBaseMethod'
}]
})
Ext.define('Fiddle.view.BaseController', {
extend: 'Ext.app.ViewController',
alias: 'controller.base',
onBaseMethod: function(me){
Ext.Msg.alert('Base', 'Base method')
}
})
Ext.define('Fiddle.view.Extended', {
extend: 'Fiddle.view.Base',
requires: ['Fiddle.view.ExtendedController'],
controller: 'extended',
title: 'Viewcontroller inheritance',
bodyPadding: 5,
html: 'The Base button does not work, because the method is searched in ExtendedController only.',
bbar: [{
text: 'Extended button',
handler: 'onExtendedMethod'
}]
})
Ext.define('Fiddle.view.ExtendedController', {
extend: 'Ext.app.ViewController',
alias: 'controller.extended',
onExtendedMethod: function(me){
Ext.Msg.alert('Extended', 'Extended method')
},
renderTo: Ext.getBody()
})
爲什麼你不希望與onExtendedMethod方法 '而延伸Fiddle.view.BaseController'? https://fiddle.sencha.com/#fiddle/20m3 – fen1ksss
@ fen1ksss謝謝,這很明顯。我幾個小時都找不到它。發佈它作爲答案,我會接受它。 –