mes*_*esx 4 html javascript extjs web
我有一个小问题:ExtJS 4.1使用名为"Ext.form.Labelable"的mixin为所有表单字段呈现标签.我想更改labelableRenderTpl,它是渲染模板,为所有表单字段添加额外的标签到右侧.我如何覆盖/执行mixin?是否可能或者我必须覆盖所有使用mixin的类的labelableRenderTpl?
感谢您的帮助和最好的问候!曼努埃尔
您可以Ext.form.Labelable在此处应用覆盖
Ext.override(`Ext.form.Labelable`, {
labelableRenderTpl: 'Your Template'
});
Run Code Online (Sandbox Code Playgroud)
这是未经测试但它应该工作因为mixin被定义为像任何其他类.您需要知道的是,现在所有使用此mixin的类都将使用新模板.如果是lableable这个列表很短
如果您不想为所有内容进行更改,则需要创建自己的mixin,例如通过扩展Ext.form.Labelable和覆盖Ext.form.field.Base将其应用于所有字段.
您可以在此处找到有关覆盖的更多信息.(即使某些SO社区似乎不喜欢这个问题,你可能会在那里找到一些有价值的信息)
更新
正如你已经猜到的那样,问题是mixin已被复制到类中,覆盖时间被应用,所以这完全是关于时间的,可能会以硬匹配结束.我建议你继承Ext.form.Labelablemixin并将这个新的mixin应用到你需要的所有类中,用你的新mixin覆盖实现.