开发者

Is there really no way to hook into the reset event of an Ext.js component?

When I reset a form in Ext.js it resets every child component, but the only events fired are invalid and valid. It seems a bit "hacky" to hook them to handle the clearing of a value, is there no other way? The "problem domain" is that I am writing a plugin to create dependent comboboxes:

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);
        }
    }
};

This works well until I call form.reset() at which point the comboboxes remain enabled but empty. I'd like to be able to hook some reset event and there disable and enable my top component to cascade a disabled state downwards.开发者_StackOverflow中文版 Alas, it seems impossible but I hope someone has a smart answer.

Thank you.


Assuming "parent" is an Ext.form.Field, you could use createSequence on parent.reset.

parent.reset = parent.reset.createSequence(function(){
    //here, do what you would have done with parent.on('reset', ...)
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜