如何设置DataView模板参数

时间:2017-04-26 16:23:48

标签: javascript extjs

当我扩展例如Ext.button.Button组件时,我知道如何将参数传递给模板。我是这样做的:

renderTpl: '...{custom_parameter}...',
getTemplateArgs: function() {
    return {
        custom_parameter: "Some value"
    }
}

效果很好。但现在我想在扩展Ext.DataView时做同样的伎俩。让我们假设我有一些模板定义如下:

Ext.define('Ext.ux.CustomComponent', {
    extend: 'Ext.DataView',
    ...
    tpl: [
        '<div>{custom_parameter}</div>',
        '<tpl for=".">',
            ...
        '</tpl>'
    ] 
    ...

我看到DataView遗漏了这个不错的getTemplateArgs。那么实现这个目标的另一种方法是什么?

1 个答案:

答案 0 :(得分:1)

一个选项是在initConfig / constructor中初始化模板,以便您可以将dataview的配置选项传递给模板。

templateArgs: {
    custom_parameter: "Some value"
},    
initConfig: function () {
    this.tpl = new Ext.XTemplate(
        '<div>{[this.templateArgs.custom_parameter]}</div>',
        '<tpl for=".">',
                ...
        '</tpl>',
        {
            templateArgs: this.templateArgs
        }
    );
}