当我在Ext.js中重置表单时,它会重置每个子组件,但唯一触发的事件是invalid
和valid
。将它们挂钩以处理值的清除似乎有点“hacky”,有没有别的办法?
“问题域”是我正在编写一个插件来创建依赖的组合框:
Ext.plugins.combobox.DependsOn = function(dependsOn) {
function init() {
var cb = this,
parent = Ext.getCmp(dependsOn);
parent.on("disable", function() {
cb.clearValue();
cb.disable();
});
parent.on("select", function() {
cb.disable(); // dependents will be disabled
cb.clearValue();
cb.getStore().load();
cb.enable();
});
}
return {
init: function(cb) {
cb.afterRender = cb.afterRender.createSequence(init);
}
}
};
这很有效,直到我调用form.reset()
,此时组合框保持启用状态但为空。我希望能够挂钩一些reset
事件,然后禁用并启用我的顶级组件以向下级联禁用状态。唉,这似乎不可能,但我希望有人有一个明智的答案。
谢谢。
答案 0 :(得分:1)
假设“parent”是Ext.form.Field,您可以在parent.reset上使用createSequence。
parent.reset = parent.reset.createSequence(function(){
//here, do what you would have done with parent.on('reset', ...)
});