好的,所以我正在开发一个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) {
//...
}
}
)
}
答案 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