我遇到了一个相当有趣的问题。我有一个商店,它使用一个模型。我的模型看起来像这样:
Ext.define('HealOmni.model.device_model', {
extend: 'Ext.data.Model',
requires: [
'Ext.data.Field'
],
fields: [
{
name: 'device_id'
},
{
name: 'device_name'
},
{
name: 'device_id_real'
},
{
name: 'sim_number'
},
{
name: 'other_device_details'
},
{
convert: function(v, rec) {
return rec.get('device_name') + " " + rec.get('device_id_real');
},
name: 'device_name_and_id'
}
]
});
然后这个商店被ComboBox使用,组合框如下所示:
xtype: 'combobox',
height: 30,
itemId: 'deviceID',
fieldLabel: 'Device ID',
labelClsExtra: 'screenSharingFontLowerHalf',
labelSeparator: ' ',
displayField: 'device_name_and_id',
queryMode: 'local',
store: 'userDeviceManagementLoggedInDisplay',
valueField: 'device_id_real'
我使用组合字段device_name_and_id
作为组合框的显示字段。但是,当我重新加载我的网站时,似乎ComboBox无法正确显示该字段。当我使用其他字段时,让我们说device_id
,它显示得很好。它只是不显示的组合字段,我不知道为什么。
我在加载商店并显示所有字段后将值记录到控制台,即使是组合字段 - 所以我真的很困惑为什么ComboBox无法正常显示。
有谁知道如何展示"转换"组合框中的字段?
答案 0 :(得分:0)
请查看下面的小提琴 https://fiddle.sencha.com/#view/editor&fiddle/1m9t
Ext.define('HealOmni.model.device_model', {
extend: 'Ext.data.Model',
fields: [{
name: 'device_name_and_id',
convert: function (v, rec) {
return rec.get('device_name') + " " + rec.get('device_id');
}
}]
});
var storeRec = Ext.create('Ext.data.Store', {
model: 'HealOmni.model.device_model',
data: [{
device_id: 1,
device_name: 'device one with id'
}, {
device_id: 2,
device_name: 'device two with id'
}]
});
Ext.create('Ext.form.field.ComboBox', {
renderTo: Ext.getBody(),
valueField: 'device_id',
displayField: 'device_name_and_id',
store: storeRec
});
答案 1 :(得分:-1)
我为你做了一个小小提琴。将此与您的代码进行比较,我希望它有所帮助: