有没有办法配置ExtJS(通过Ext.override?),以便Ext.form.Action.Submit的 submitEmptyText配置选项默认为false而不是true?
我知道可以覆盖类上的方法,但我不知道默认配置属性,有人可能认为,因为配置选项主要是公共属性,控制台记录Ext.form.Action.Submit.submitEmptyText会输出false但是它是未定义的.
我成功的一种方法是为run方法创建一个拦截器,但基本上渲染submitEmptyText配置选项是无用的,因为它不能再通过传递给构造函数的配置对象进行设置.
Ext.form.Action.Submit.prototype.run = Ext.form.Action.Submit.prototype.run.createInterceptor(function() {
this.options.submitEmptyText = false;
});
Run Code Online (Sandbox Code Playgroud)
[编辑了几次,但这对我有用]
submitEmptyText实际上不是Ext.form.Action.Submit原型的属性 - 它只是在run函数中检查为"this.options"对象的属性 - 它本身是在超类Ext.form上定义的. .行动
如果你希望默认情况下它是全局假的,那么在构造它之后只需在Ext.form.Action的options属性上设置它.
Ext.form.Action.prototype.constructor = Ext.form.Action.prototype.constructor.createSequence(function() {
Ext.applyIf(this.options, {
submitEmptyText:false
});
});
Run Code Online (Sandbox Code Playgroud)
这很棘手,因为Ext.form.Action将this.options设置为其构造函数中的空对象,因此在构造函数执行后必须访问该options属性,这就是createSequence在这种情况下工作的原因.