2012-04-13 52 views
0

我很苦惱,我認爲我使用代理加載了我的頁面內的商店,並且它的工作非常完美。但只要我加載相同的數據視圖與同一個srore,但外部一個,它不起作用。如何使用外部存儲渲染數據視圖的tpl?

此示例的工作原理:

Ext.create('Ext.data.Store',{ 

storeId:'employeeStore', 
fields:['id', 'name', 'type','children'], 
data:[ 
    { 
     id : 1, 
     name : "GEO ET 09", 
     type : 1, 
     children: [ 
      { id: 11, parent: 1 ,name: '0820 689 689' }, 
      { id: 12, parent: 1, name: '0820 689 689' }, 
      { id: 13, parent: 1 ,name: '0820 689 689' }, 
      { id: 14, parent: 1, name: '0820 689 689' }, 
     ] 
    }, 
    { 
     id : 2, 
     name : "0800 & 0805", 
     type : 2, 
     children: [ 
      { id: 21, parent: 2, name: '0820 689 689' }, 
      { id: 22, parent: 2, name: '0820 689 689' }, 
      { id: 23, parent: 2, name: '0820 689 689' }, 
     ] 
    }, 
], 

});

Ext.define( 'Axiastats.view.NumbersChoicePanel',{ 延伸: 'Ext.FormPanel', renderTo: 'numbersChoice', 別名: 'widget.NumbersChoicePanel', ID: 'numbersChoice容器' ,

requires : ['Ext.form.*','Ext.button.*', 'Ext.layout.container.Column', 'Ext.tab.Panel','Axiastats.store.Numbers'], 

baseCls: 'numbersChoice-container', 
cls: 'choice hoverBox round6', 
layout: 'anchor', 
bodyPadding: '0', 
modal : true, 
defaults: { 
    border: false, 
    layout: 'anchor', 
}, 
items : [ 
    { 
     xtype: 'box', 
     autoEl: { 
      tag: 'div', 
      cls: 'arrow' 
     } 
    }, 
    { 
     xtype: 'dataview', 
     id: 'numbers-view', 
     cls: 'cont round4', 
     itemSelector: 'div.categNumbersRow', 
     store: Ext.data.StoreManager.lookup('employeeStore'), 
     //store: 'Axiastats.store.Numbers', 
     tpl: [ 
      '<tpl for=".">', 
       '<div class="close cat0{type} categNumbersRow" id="categNumbers-{id}">', 
        '<div id="theCategNumbers-{id}" class="title">', 
         '<span class="n01">{name}</span>', 
         '<span class="n02">', 
          '<input type="checkbox" id="checkCategNumbers-{id}" name="checkCategNumbers" value={id} checked="yes"/>', 
          '<label for="checkCategNumbers-{id}">La catégorie</label>', 
         '</span>', 
         '<span id="detailCategNumbers-{id}" class="n03">Détail</span>', 
         '<div class="clear"></div>', 
        '</div>', 

        '<div id="allNumbers-{id}" class="allNumbers" style="display:none;">', 
         '<span class="sep first"></span>', 
         '<ul>', 
          '<tpl for="children">', 
           '<li><input type="checkbox" id="numbersRow-{id}" name="numbersRow-{id}" value="{id}" class ="numbersRow"/> <label for="numbersRow-{id}">{name}</label></li>', 
          '</tpl>', 
         '</ul>', 
         '<span class="sep clear"></span>', 
         '<ul class="select">', 
          '<li><input type="checkbox" id="checkAllNumbers-{id}" name="checkAllNumbers-{id}" class="checkAllNumbers" value="{id}" /> <label for="checkAllNumbers-{id}">Sélectionner tout</label></li>', 
          '<li><input type="checkbox" id="checkAllNumbersReset-{id}" name="checkAllNumbersReset-{id}" class="checkAllNumbersReset" value="{id}" /> <label for="checkAllNumbersReset-{id}">Désélectionner</label></li>', 
         '</ul>', 
         '<span class="sep clear"></span>', 
        '</div>', 
       '</div>', 
      '</tpl>' 
     ], 

],

​​

});

但如果我希望把我的商店外的這樣的文件:

Ext.define('Axiastats.store.Numbers', { 
extend: 'Ext.data.Store', 
singleton : true, 
autoLoad: true, 
storeId:'employeeStore', 
fields:['id', 'name', 'type','children'], 
data:[ 
    { 
     id : 1, 
     name : "GEO ET 09", 
     type : 1, 
     children: [ 
      { id: 11, parent: 1 ,name: '0820 689 689' }, 
      { id: 12, parent: 1, name: '0820 689 689' }, 
      { id: 13, parent: 1 ,name: '0820 689 689' }, 
      { id: 14, parent: 1, name: '0820 689 689' }, 
     ] 
    }, 
    { 
     id : 2, 
     name : "0800 & 0805", 
     type : 2, 
     children: [ 
      { id: 21, parent: 2, name: '0820 689 689' }, 
      { id: 22, parent: 2, name: '0820 689 689' }, 
      { id: 23, parent: 2, name: '0820 689 689' }, 
     ] 
    }, 
], 

});

我刪除店:Ext.data.StoreManager.lookup( 'employeeStore'),由商店: 'Axiastats.store.Numbers',

該店加載但TPL沒有加載它

回答

0

您應該明確地爲dataview創建存儲:store: Ext.create('Axiastats.store.Numbers')。 然後刪除商店中的singleton : true配置。它將按預期工作。