1

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

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

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

/**
 * 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) {
                //...
            }
        }
    )
}
4

1 回答 1

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。这将再次编译模板。
我们还可以访问作为字符串 (in tpl['html']) 提供的原始模板。但请注意,这部分没有正式记录。

因此,我们可以在不更改原始代码的情况下自定义此处显示的模板: https ://fiddle.sencha.com/#view/editor&fiddle/21e7

于 2017-06-13T20:33:56.430 回答