Extjs 4.0 MVC - 网格列渲染器功能范围问题

时间:2011-08-09 16:49:20

标签: model-view-controller extjs renderer

我不明白为什么我不能使用' myRendInside '函数来渲染网格列。我必须使用 myRendGlobal 或者我也可以使用renderer: function(val) {blah blah'。 'this.myRendInside'无法解决。

function myRendGlobal (val, metaData, record, rowIndex, colIndex, store) {
        return val + 'abc'
        };
 Ext.define('AM.view.Event.Grid', {
        extend: 'Ext.grid.Panel',
         myRendInside: function (val, metaData, record, rowIndex, colIndex, store) {
            return val + 'xyz'
        },
        columns: [{
            dataIndex: 'name', renderer : this.myRendInside
        },
        {
            dataIndex: 'phone', renderer : myRendGlobal
        },  
        .
        .
        .

1 个答案:

答案 0 :(得分:6)

您可以通过在构造函数或initComponent方法中定义列来解决此问题。在组件生命周期中此点之前,您要指定为渲染器的方法不可用。

    initComponent(){
        this.columns: [{
        dataIndex: 'name', renderer : this.myRendInside
        }
        ...
        ]
        this.callParent(arguments);        
    }