【发布时间】:2015-03-11 22:59:05
【问题描述】:
我对 Extjs 完全陌生,以下是我的应用程序结构的一部分
查看 - 包含组合框
xtype: 'combobox',
itemId: 'myCombo',
fieldLabel: 'myLabel',
queryMode: 'local',
store: Ext.create('Ext.data.ArrayStore', {
fields: [{
name: 'key1'
}, {
name: 'key2'
}],
storeId: 'myStore',
autoLoad: false
}),
displayField: 'key1',
valueField: 'key2',
控制器 - 包含对组合框的引用
Ext.define('MyApp.controller.myController', {
extend: 'Ext.app.Controller',
views: ['MyApp.view.MyView'],
refs: [{
ref: 'myComboRef',
selector: '#myCombo'
}],
this.control({
'#myCombo': {
change: this.getData
}),
.
.
.
getData: function(currFeild, newValue, oldValue, eOpts){
// I can get "valueField" of myCombo by
var valueFieldData = this.getMyComboRef().valueField;
// I want to change "valueField" to "key3"
// ????????
});
那么谁能告诉我,如何为“myCombo”设置新的 valueField ?
我已经访问过this 链接。但是,它并没有太大帮助
【问题讨论】:
-
sry,虽然你为什么要改变你的值域? mby 我太盲目了——虽然我无法想象我确实想要这样的情况。
-
在我的应用程序中,一个组合可以有多个“valueField”......而且我无法仅在视图中处理它。所以我正在寻找通过 Controller 更改它。如果您知道任何其他好的方法,请建议我
-
多值字段是什么意思?通常你有一个模型商店,你的模型有一个 id 属性。并且那个 id 属性应该是你的值字段,因为你可以用它来识别确切的记录。所以你没有这样一个你可以识别记录的字段?
-
您是否只想在触发更改事件时检索不同的值(而不是 key2)?
标签: javascript extjs extjs4 extjs4.1