我定义了一个扩展 Ext.view.View 的类:
Ext.define('Aft.view.comments.CommentsList', {
extend: 'Ext.view.View',
xtype: 'comments-list',
parameter: false,
tpl: new Ext.XTemplate(
'<tpl for=".">',
' <div class="comment">',
// some code here
' <div class="fault">',
' <tpl if="this.parameter">',
// some code also here
' </tpl>',
' </div>',
' </div>',
'</tpl>',
{
strict: true,
// other methods and fields
}),
initComponent: function() {
this.config = Ext.apply({}, this.config);
this.tpl.config.parameter = this.config.parameter;
this.callParent(arguments);
}
});
如您所见,我正在尝试将一个布尔参数从组件外部传递给其中的 XTemplate。我正在尝试这样做,因为该组件在 3 个不同的地方使用。在其中一个中,我希望它看起来略有不同(只是没有一个 div)。我发现参数化的 XTemplate 将是一个不错的解决方案,但我不能强迫它工作。我正在创建这样的组件:
items: [
{
xtype: 'comments-list',
parameter: false
}
]
不管我把什么作为参数,我放在配置中的所有东西似乎都在我的自定义类的其他实例之间共享。因此,要么每个 CommentsList 的参数都设置为 true,要么每个 CommentsList 的参数都设置为 false。我显然遗漏了一些东西,但似乎这个话题也给其他人带来了困惑。尽管如此,我没有找到解决这个问题的正确方法。我在类定义中直接尝试了 config、factoryConfig 和变量的各种组合,但似乎没有任何效果。
因此,我将非常感谢一个解决方案,或者至少是一个有价值的博客文章或文档链接。非常感谢您提前。
如果这是相关的,我正在使用 ExtJS 6 经典。