2

我有一个带有动态字段的表单。在表单的 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方法

4

3 回答 3

3

尝试

f.labelEl.dom.innerHTML = "LABEL:<span style='color:red;font-weight:bold' data-qtip='Required'>*</span>";
于 2013-04-18T20:37:49.873 回答
1

在组件已经渲染后,您不能使用此属性。initRenderTpl(使用标签模板)方法仅在组件尚未呈现时运行。一旦渲染它就不会再次运行。

您将需要直接更新 DOM。

于 2012-10-27T00:09:43.647 回答
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);
},
于 2014-01-23T15:47:25.973 回答