2011-08-09 3 views
1

그리드 열 렌더링을 위해 'myRendInside'함수를 사용할 수없는 이유를 모르겠다. myRendGlobal을 사용해야합니다. 또는 'renderer: function(val) {blah blah''을 사용할 수도 있습니다. 'this.myRendInside'가 해결되지 않습니다.Extjs 4.0 MVC - 격자 열 렌더러 함수 범위 문제

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 
     }, 
     . 
     . 
     . 

답변

6

생성자 또는 initComponent 메소드에서 열을 정의하여이를 수정할 수 있습니다. 렌더러로 지정하려는 메서드는 구성 요소 수명주기의이 시점까지 사용할 수 없습니다.

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