gpt4 book ai didi

javascript - ExtJS 4.1 : Override mixins

转载 作者:搜寻专家 更新时间:2023-10-31 08:07:57 24 4
gpt4 key购买 nike

我有一个小问题:ExtJS 4.1 使用名为“Ext.form.Labelable”的 mixin 为所有表单字段呈现标签。我想为所有表单字段更改渲染模板labelableRenderTpl,以便在右侧添加一个额外的标签。我如何覆盖/扩展一个混合?甚至有可能还是我必须为所有使用混合的类覆盖 labelableRenderTpl?

感谢您的帮助和最诚挚的问候!曼纽尔

最佳答案

您可以为 Ext.form.Labelable 应用覆盖这里

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

这是未经测试的,但它应该可以工作,因为 mixin 的定义与任何其他类一样。您需要知道的是,现在使用此 mixin 的所有类都将使用新模板。在可标记的情况下,此列表很短

  • Ext.form.FieldContainer
  • Ext.form.field.Base
  • Ext.form.field.HtmlEditor

如果你不想一劳永逸地改变它,你将需要创建你自己的 mixin,例如通过扩展 Ext.form.Labelable并覆盖 Ext.form.field.Base将其应用于所有领域。

您可能会找到有关重写 here 的更多信息 。 (即使某些 SO 社区似乎不喜欢针对您的案例提出这个问题,您也可能会在其中找到一些有值(value)的信息)

更新

正如您已经猜到的那样,问题是在应用覆盖时,mixin 已经被复制到类中,所以这一切都与时间有关,并且可能以硬匹配结束。我建议您继承 Ext.form.Labelable mixin 并将这个新的 mixin 应用到您需要的所有类,方法是用您的新 mixin 覆盖实现。

关于javascript - ExtJS 4.1 : Override mixins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15246430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com