javascript – ExtJS 4.1:覆盖mixins

我有一个小问题:
ExtJS 4.1使用名为“Ext.form.Labelable”的mixin为所有表单字段呈现标签.我想更改labelableRenderTpl,它是渲染模板,为所有表单字段添加额外的标签到右侧.
我如何覆盖/执行mixin?是否可能或者我必须覆盖所有使用mixin的类的labelableRenderTpl?

感谢您的帮助和最好的问候!
曼努埃尔

解决方法:

您可以在此处为Ext.form.Labelable应用覆盖

Ext.override(`Ext.form.Labelable`, {
    labelableRenderTpl: 'Your Template'
});

这是未经测试但它应该工作因为mixin被定义为像任何其他类.您需要知道的是,现在所有使用此mixin的类都将使用新模板.如果是lableable这个列表很短

> Ext.form.FieldContainer
> Ext.form.field.Base
> Ext.form.field.HtmlEditor

如果您不想为所有内容更改它,则需要创建自己的mixin,例如扩展Ext.form.Labelable并覆盖Ext.form.field.Base以将其应用于所有字段.

您可以找到有关覆盖here的更多信息.(即使某些SO社区似乎不喜欢这个问题,您可能会在那里找到一些有价值的信息)

更新

正如你已经猜到的那样,问题是mixin已被复制到类中,覆盖时间被应用,所以这完全是关于时间的,可能会以硬匹配结束.我建议你继承Ext.form.Labelable mixin并将这个新的mixin应用到你需要的所有类中,用你的新mixin覆盖实现.

相关文章

我有一个问题,我不知道如何解决.我有一个Indy10HTTP服务器.我...
我正在使用sdk1.17开发一个Firefox附加组件.它包含一个带有按...
Ext.define('PhysicsEvaluationSystemV1.view.base.Bas...
默认所有列(假设列3最大3列,动态显示),使用headerRowsEx中...
序言   1.ExtJs是一套很好的后台框架。现在很流行的,我们...
我在ExtJs中有这个表单.如果field1不为空,则field2不能为空....