Extjs 如何覆盖Ext.form.Action.Submit上的默认配置选项?

Extjs 如何覆盖Ext.form.Action.Submit上的默认配置选项?,extjs,Extjs,有没有办法配置ExtJS(通过Ext.override?),使的SubmitTestyText配置选项在默认情况下为false而不是true 我知道可以重写类上的方法,但我不知道默认的配置属性,有人可能会认为,由于配置选项大多是公共属性,控制台日志Ext.form.Action.Submit.submitteryText将输出false,但它是未定义的 我成功的一个方法是为run方法创建一个拦截器,但这基本上使submitterytext config选项变得无用,因为它不能通过传递给构造函数的

有没有办法配置ExtJS(通过Ext.override?),使的SubmitTestyText配置选项在默认情况下为false而不是true

我知道可以重写类上的方法,但我不知道默认的配置属性,有人可能会认为,由于配置选项大多是公共属性,控制台日志Ext.form.Action.Submit.submitteryText将输出false,但它是未定义的

我成功的一个方法是为run方法创建一个拦截器,但这基本上使submitterytext config选项变得无用,因为它不能通过传递给构造函数的config对象进行设置

Ext.form.Action.Submit.prototype.run = Ext.form.Action.Submit.prototype.run.createInterceptor(function() {
    this.options.submitEmptyText = false;
});

如果希望Ext.form.Action.submit中的submitteryText为false,只需在创建Ext.form.Action.submit对象时在配置中设置它

var submit = Ext.form.Action.submit({
    submitEmptyText: false
});

如果要覆盖所有实例的Ext.form.Action.submit(),为什么不使用Ext.override呢

Ext.override(Ext.form.Action.submit, { 
    submitEmptyText: false
});

[编辑了几次,但这对我有用]

submitterytext实际上不是Ext.form.Action.Submit原型的属性——它只是在run函数中作为“this.options”对象的属性进行检查——该对象本身是在超类Ext.form.Action上定义的

如果您希望它在默认情况下全局为false,那么在构造它之后,只需在Ext.form.Action的options属性上设置它

Ext.form.Action.prototype.constructor = Ext.form.Action.prototype.constructor.createSequence(function() {
    Ext.applyIf(this.options, {
        submitEmptyText:false
    });
});

这很棘手,因为Ext.form.Action将this.options设置为其构造函数中的空对象,因此在构造函数执行后,您必须访问该options属性,这就是createSequence在这种情况下工作的原因。

使用覆盖非常大胆,但是如果您能够管理更改,正确的方法是:

Ext.override ( Ext.form.Action.submit, { submitEmptyText: false }); Ext.override(Ext.form.Action.submit{ submittyText:false }); 如果需要,它将允许将此设置反转为true。我还建议读一读

也许:

Ext.form.Action.submit.prototype.submitEmptyText = false.
这有助于我:

Ext.Window.prototype.constrainHeader = true;

这就像预期的一样!事实上,submitterytext属性的实现不像组件配置选项那样,这就是Ext.override不起作用的原因,另一方面,它可以完美地工作!谢谢Ext.override在Ext.form.Action上不起作用在这种情况下,submitteryText属性在Ext.Ext中的实现方式不同。override在Ext.form.Action上不起作用在这种情况下,submitteryText属性在Ext中的实现方式不同。