如何将商店数据传递到ComboBoX中存储
hours_ds: [
[0, '12AM'], [1, '1AM'], [2, '2AM'], [3, '3AM'],
[4, '4AM'], [5, '5AM'], [6, '6AM'], [7, '7AM'],
[8, '8AM'], [9,'9AM'], [10,'10AM'], [11,'11AM'],
[12, '12PM'], [13, '1PM'], [14, '2PM'], [15, '3PM'],
[16, '4PM'], [17, '5PM'], [18, '6PM'], [19, '7PM'],
[20, '8PM'], [21,'9PM'], [22,'10PM'], [23,'11PM']
],
{
xtype: 'combo',
name: 'startHourCombo',
id: 'startHourCombo_cb',
queryMode: 'local',
maxWidth: 80,
columnWidth: 0.2,
store: //how to pass my hours_ds values to this combo
selectOnFocus: true,
forceSelection: true,
triggerAction: "all",
typeAhead: false,
valueField:'id',
displayField: 'name'
}
答案 0 :(得分:3)
您需要先创建商店,然后将该商店传递到您的组合商店。
我在这里是工作代码。
这里创建一个商店并设置为变量状态。然后将这些状态称为组合框存储。
var states = Ext.create('Ext.data.Store', {
fields: ['abbr', 'name'],
data : [
{"abbr":"AL", "name":"Alabama"},
{"abbr":"AK", "name":"Alaska"},
{"abbr":"AZ", "name":"Arizona"}
]
});
// Create the combo box, attached to the states data store
Ext.create('Ext.form.ComboBox', {
fieldLabel: 'Choose State',
store: states,
queryMode: 'local',
displayField: 'name',
valueField: 'abbr',
renderTo: Ext.getBody()
});
检查小提琴。 Fiddle
答案 1 :(得分:0)
尽管可以将数组引用传递给Combobox中的存储,如此Fiddle https://fiddle.sencha.com/#view/editor&fiddle/26vi所示,但是良好的做法是在View Model中声明存储然后将其绑定到存储配置中组合框。这将使代码具有声明性,并且如果需要,还允许重用存储。
可以通过数据配置在商店中对数据进行硬编码。请参阅http://docs.sencha.com/extjs/6.5.1/classic/Ext.data.Store.html