2012-09-26 2 views
1
Ext.define('GB.view.DigestList',{ 
    extend: 'Ext.panel.Panel', 
    alias:'widget.digestlist', 

      items:[ { 
       xtype:'dataview', 
       store: 'GB.store.Digests', 
       tpl: new Ext.XTemplate(
          '<tpl for=".">', 
          '<div class="container">', 
           '{name}', 
           '<div class="davidfun"></div>', 
          '</div>', 
          '</tpl>' 
       ),  
       listeners: { 
        viewready: function(){ 
         var home_d = Ext.create('GB.view.MyOwnDigest'); 
         home_d.render(Ext.query('.davidfun')[0]); 
         // home_d.render(Ext.getBody()); <- it'll work fine with this line 
        }, 
       } 
       }], 

    bind: function(record, store) { 
     this.getComponent(0).bindStore(record); 
    } 

}); 


Ext.define('GB.store.Digests', { 
    extend:'Ext.data.Store', 
    model: 'GB.model.Digest', 
    data:[ 
     {'name':'name111'}, 
     {'name':'name222'} 
    ] 
}); 

사람은 'XTemplate 내부 사용자 정의 구성 요소를 렌더링

를, 알고 있나요 항상 감사 먼저 응답 :

코드 UPDATE에 대한 '정의되지 않은'보여줄 것이다 :

문제 해결!

+0

먼저 참고 사항을 참조하십시오 : XTemplates은 기본적으로 컴파일, 당신은이를 설정할 필요가 없습니다. – sra

+0

좋아요, 그걸 수정 해 드리겠습니다. 컴파일되지 않았다면 궁금 해서요. 컴파일 된 것을 설정하십시오 : true – pohchen

답변

4

데이터보기의 "viewready"이벤트를 시도 할 수 있습니다.

내 예를 http://jsfiddle.net/2huvt/

+0

덕분에 많은 부분이 잘되었습니다. :))) – pohchen

+0

안녕하세요, 다시 데이터 로딩을 프록시로 변경하면 정의되지 않은 상태가 표시됩니다 http://jsfiddle.net/LUuhZ/1/ – pohchen

+0

데이터보기의 '새로 고침'이벤트를 시도해보십시오. 네 사건에서 두 번 부름 받았다. 핸들러에서 저장소가로드 된 경우에만 Ext.query를 수행 할 수 있습니다. BTW는 귀하의 바이올린에서 브라우저가 dropbox에 대한 교차 도메인 아약스를 허용하지 않습니다. – df1

관련 문제