我无法在控制器中获得组合框值。组合框视图的getter方法返回
function i(){
return this.constructor.apply(this,arguments)||null
}
而不是查看对象实例。如果我使用
var combo=this.getColumnTypeComboView().create()
然后我没有得到组合框combo.getValue()
的选定值。
答案 0 :(得分:4)
要在控制器中获取视图引用,只需使用Controller类中的getView()方法。要在视图和控制器之间创建连接,请确保遵循MVC应用程序体系结构主体,找到here
var view = this.getView('Contact'); //=> getView( name ) : Ext.Base
如果组合框是控制器处于关闭状态的视图项,则也可以使用Controller类中的control方法。
Ext.define('My.controller.Contact', {
extend: 'Ext.app.Controller',
views: ['Contact'],
init: function() {
//reference the view
var view = this.getView('Contact');
//reference the combobox change event
this.control({
'mywin combobox': {
change: this.onChangeContinent
}
});
},
onChangeContinent:function (field, value, options) {
//here you can get combobox component and its value
Ext.Msg.alert('Continent', value);
}
});
编辑:
要从另一个组件引用一个组件,您可以使用Controller ref方法,如下所示:
refs: [{
ref: 'combo',
selector: 'mywin combobox'
}]