我有一个包含商店项目({ value, text})的组合框,有时我需要更新文本。当我这样做时,所选值(文本)不会更新。
这是要说明的小提琴,代码如下所示。我们在下拉列表中选择一个项目,然后单击更新文本。这将更新下拉列表中的文本,但不会更新组合框原始值。
[更新]:将 model.set() 替换为 store.loadData()
Ext.application({
name : 'Fiddle',
launch : function() {
Ext.create("Ext.form.Panel", {
renderTo: Ext.getBody(),
width: 300,
height: 200,
bodyPadding: 20,
layout: "form",
items: [
{
xtype: "combobox",
itemId: "pickmin",
fieldLabel: "Test",
queryMode: "local",
store: {
fields: ["value", "text"],
data: [
{ value: 1, text: "Text 1" },
{ value: 2, text: "Text 2" },
{ value: 3, text: "Text 3" },
{ value: 4, text: "Text 4" },
]
}
}
],
buttons: [
{
text: "Update Text",
handler: function (btn) {
const combo = btn.up("form").down("#pickmin");
const newData = []
combo.store.each(r => {
newData.push({
value: r.data.value,
text: r.data.text + "0"
});
});
combo.store.loadData(newData);
}
}
]
});
}
});