2011-11-22 2 views
1

저는 ExtJs를 처음 사용하고 있으며 그리드를 구성 요소로 사용하려고하지만이를 인스턴스화 할 때 초기화하지 않는 것 같습니다.ExtJs에서 구성 요소로 격자를 사용하는 중 오류가 발생했습니다.

그것은이 오류가 발생합니다

:

c is not a constructor 
http://localhost/xv1/extjs/ext-debug.js 
Line 6456 
오류가이 라인에서 발생

: 다른 사람이 언급 한대로 initComponent 함수가 필요 http://pastebin.com/42sfGVvU

+0

사실을 확인, 당신은에 의해 같은 결과를 얻을 수 있습니다 Ext.widget ('accountant.gridVoucher')', 오, 그리고 BTW를 호출하면, Ext.create는 config 매개 변수를 받아들이지 만 필요하지 않습니다.'Ext.create ('accountant.gridVoucher')'without 어떤 문제. – VoidMain

+0

안녕하세요. 네,하지만 그 일을하려고하면 같은 오류가납니다. 나는 심각하게 그 밖에 무엇을 해야할지 모른다. 그리드 구성 요소가 초기화되지 않는 것처럼 보입니다. 이유는 모르겠습니다. –

+1

gridVoucher 정의에서 initComponent로 생성자를 변경하십시오. – VoidMain

답변

0

: 여기

var gridVoucher = Ext.create('accountant.gridVoucher'); 

는 전체 코드입니다 . 또한 그리드 확장을 내가하는 것보다 훨씬 다르게 구현합니다. 예를 들어, 한번도 내 인생에서 Ext.apply을 사용한 적이 없습니다. 당신이 잘못하고 있는지, 아니면 정확하고 그러나 다른 방식으로하고 있는지 나는 잘 모르겠다. 그러나 내가 사용하는 방법이 여기에있다.

Ext.define('App.teams', 
{ 
    extend: 'App.gridBaseClass',//custom base class extends 'Ext.grid.Panel' 
    initComponent: function(config) 
    { 
     this.callParent(arguments); 
    }, 
    property:'default' 
    constructor  : function(config) 
    { 
     config.columns = [...]; 
     config.title = 'my title'; 
     if(!config.width)config.width=300;//something we are allowed to override 

     //set other configs as needed, whatever you would send to grid.Panel 

     //example of setting global data from config input 
     if(config.property) this.property=config.property; 

     this.callParent(arguments); 
    } 
}); 

중요 사항은 callParent 및 initComponent입니다. 이 도움이 되었기를 바랍니다. 또는 다른 방법을 비교하는 것이 적어도 재미있었습니다.

편집 : 그냥 @nscrob가 callParent에 대해 말 외에 , 우리는 그리드에게 당신이 동일한 방법을 만들 수 있습니다이 방법으로, 단순히

var grid = Ext.create('App.teams'); 
관련 문제