要在控制器中获取视图引用,只需使用获取视图() http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.app.Controller-method-getView控制器类中的方法。要在视图和控制器之间创建连接,请确保遵循 MVC 应用程序架构原则,发现here http://docs.sencha.com/extjs/4.2.1/#/guide/application_architecture
var view = this.getView('Contact'); //=> getView( name ) : Ext.Base
如果组合框是您的控制器负责关闭的视图的项目,则使用control http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.app.Controller-method-control方法也来自 Controller 类。
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);
}
});
这里有一个小提琴的例子 http://jsfiddle.net/GRE7N/5/
EDIT:
要从一个组件引用另一个组件,您可以使用 Controllerref http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.app.Controller-method-ref方法,像这样:
refs: [{
ref: 'combo',
selector: 'mywin combobox'
}]
这里有一个小提琴示例 2 http://jsfiddle.net/GRE7N/9/