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

ama*_*y11 1 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
        },  
        .
        .
        .
Run Code Online (Sandbox Code Playgroud)

Joh*_*ice 6

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

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