Javascript 当组合框中只有一个值时,如何在组合框中有一个选定值
我使用的是ExtJS4.2.1,我知道有一个自动选择配置选项,它默认为组合存储的第一个元素 但我要寻找的可能是通过覆盖,仅当组合框的存储中只有一个项时才这样做 我曾想过在商店层面上这样做,但如果我的应用程序中有10个组合框,这是相同代码的10倍Javascript 当组合框中只有一个值时,如何在组合框中有一个选定值,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我使用的是ExtJS4.2.1,我知道有一个自动选择配置选项,它默认为组合存储的第一个元素 但我要寻找的可能是通过覆盖,仅当组合框的存储中只有一个项时才这样做 我曾想过在商店层面上这样做,但如果我的应用程序中有10个组合框,这是相同代码的10倍 有什么想法吗?到目前为止我已经知道了。如果有人有更好的想法或理由,我不应该使用这个方法来做我的覆盖,请张贴 Ext.define('App.overrides.form.ComboBox', { override: 'Ext.form.C
有什么想法吗?到目前为止我已经知道了。如果有人有更好的想法或理由,我不应该使用这个方法来做我的覆盖,请张贴
Ext.define('App.overrides.form.ComboBox', {
override: 'Ext.form.ComboBox',
onDataChanged: function () {
var store = this.getStore();
if (store != null) {
if (store.count() == 1) {
var value = store.getAt(0).data[this.valueField];
this.setValue(value);
}
}
this.callParent();
}
});
反对的唯一原因是覆盖更改了所有组合的行为。“你真的想要吗?”Saki此刻,我会说是的。那好吧。在我看来,把它应用到所有的组合中是很奇怪的。如果您不想要它,可以使用上面的扩展组合,而不是覆盖,然后进一步扩展这个确实需要该行为的扩展组合。希望它clear@Saki是的,这很清楚,也许扩展组合来创建我自己的会是一个更好的主意。我相信客户最终会想出一个理由,为什么他们希望这种行为在某些情况下不适用,他们总是发现: