2012-09-26 143 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'} 
    ] 
}); 

是否有人知道我为什么不能得到DIV类,这是 “davidfun” 在Xtemplate由Ext.query(”。davidfun')[0],渲染内XTemplate自定义组件

它会始终显示 '未定义',感谢您的答复先:)

代码更新:

问题解决了!

+0

首先要注意:XTemplates默认编译,你并不需要设置。 – sra

+0

好吧,我会为此进行修改。 我想知道如果它没有编译,因此设置编译:真 – pohchen

回答

4

你可以试试数据视图的 “viewready” 事件。

见我的例子http://jsfiddle.net/2huvt/

+0

非常感谢,它现在运行良好。 :))) – pohchen

+0

嗨再次,但如果我更改数据加载到代理,它会显示未定义http://jsfiddle.net/LUuhZ/1/ – pohchen

+0

尝试数据视图的'刷新'事件,但它会在你的情况下被调用两次。在处理程序中,只有在加载商店时才可以执行Ext.query。 BTW在你的小提琴中,浏览器将不允许你跨域AJAX到Dropbox。 – df1