Я только начинаю с Extjs 4, и мне нужно получить выбранное значение поля со списком, чтобы изменить магазины и отобразить диаграмму, соответствующую данным каждого магазина.
Я использую модель MVC, вот мое представление, содержащее поля со списком:
Ext.define('Metrics.view.Params', {
extend: 'Ext.grid.Panel',
alias: 'widget.params',
title: 'Select Parameters',
hideHeaders: true,
initComponent: function() {
this.columns = [{
dataIndex: 'name',
flex: 1
}];
this.dockedItems = [{
xtype: 'container',
items: [{
xtype: 'combobox',
id : 'cmbGraph',
mode : 'queryMode',
name : 'graph',
fieldLabel: 'Graph',
store: ['Small data','Big data'],
editable : false
},
{
//another combobox here..
}]
И мой контроллер:
Ext.define('Metrics.controller.RenderGraph', {
extend: 'Ext.app.Controller',
refs: [{
ref : 'params',
selector : 'params'
}],
stores: ['GraphData'],
init: function() {
// Start listening for events on views
this.control({
'paramsbtn button[action=apply]': {
click : this.launchChart
}
});
launchChart : function(button){
var params = this.getParams();
var combo1 = params.items[cmbGraph];
console.log(Ext.encode(combo1));
var v = combo1.getValue();
var r = combo1.findRecord(combo1.valueField || combo1.displayField,v);
return(combo1.store.indexOf(r));
console.log('combo item' + r + 'selected');
}
Как видите, я пытаюсь получить значение выпадающего списка с идентификатором = cmbGraph, но это не работает, я получаю сообщение об ошибке:
Uncaught TypeError: Cannot call method 'getValue' of undefined
С Extjs 4 это сложно, потому что мне нужно добраться до элемента представления с помощью моего контроллера. Любая помощь приветствуется.