我有一个包含动态字段的表单。在表单的afterrender事件中,我想设置afterLabelTextTpl属性。我可以设置此属性,但我看不到它在我的表单中更改。我怎样才能做到这一点?
段:
listeners: {
beforerender: function () {
var fields = me.getForm().getFields();
Ext.each(fields.items, function (f, idx) {
f.afterLabelTextTpl = requiredTpl;
console.log(f.afterLabelTextTpl);
}); //eo Ext.each
}
}
修改
我正在寻找 beforerender 方法
答案 0 :(得分:3)
尝试
f.labelEl.dom.innerHTML = "LABEL:<span style='color:red;font-weight:bold' data-qtip='Required'>*</span>";
答案 1 :(得分:1)
在呈现组件后,您无法使用此属性。 仅当组件尚未呈现时,才运行initRenderTpl(使用标签模板)方法。一旦渲染它就不会再次运行。
您需要直接更新DOM。
答案 2 :(得分:0)
我会在你的表单中推荐这样的东西:
setRequired: function(field, index) {
field.afterLabelTextTpl = requiredTpl;
},
initComponent: function(arguments) {
var me = this;
this.on('beforeadd', function(me, field){
var fields;
if (field.isXType('fieldset')) {
fields = field.query('field');
Ext.each(fields, me.setRequired);
} else {
me.setRequired(field);
}
});
// rest of logic
me.callParent(arguments);
},