ExtJS XTemplate替换字符串中的特定事件

时间:2016-12-14 20:13:39

标签: extjs shopware

好的,所以我正在开发一个shopware插件,我需要将disabled输入字段更改为已在XTemplate中定义的readonly字段。

我一直试图找到一种方法来完成这项工作,但我根本无法想出任何东西。

此代码是一个精简版本,有多个输入字段,其中一些也被禁用,但这是最后一次出现。 任何提示都表示赞赏! :)

/**
 * Some function...
 */
createSomeFunction: function() {
    var me = this;
    return new Ext.XTemplate(
        '<tpl for=".">',
        //stripped this down
        '<p>',
        '<strong>'+me.snippets.mediaInfo.adress+'</strong>',
        '<input type="text" disabled="disabled" value="{path}" />',
        '</p>',
        '</div>',
        '</div>',
        '</tpl>',
        {
            //formatting functions
            someFormattingFunctions: function(value) {
                //...
            }
        }
    )
}

1 个答案:

答案 0 :(得分:0)

您需要为原始Shopware视图类编写覆盖以自定义模板。

在你的情况下它看起来像这样:

Ext.define('MyApp.ShopwareOverride', {
    override: 'Shopware.view.Masterdata',

    createSomeFunction: function () {
        var tpl = this.callParent(arguments);
        //manipulate response of the original function here ...
    }
});

由于我们现在可以访问模板,因此我们可以操作HTML。在这里,您可以调用set函数来替换模板。将第二个参数作为true传递非常重要。这会再次编译模板 我们还可以访问原始模板,该模板以字符串形式提供(在tpl['html']中)。但请注意,这部分内容尚未正式记录。

因此,我们可以自定义模板,而不更改原始代码: https://fiddle.sencha.com/#view/editor&fiddle/21e7