2012-04-13 4 views
0

Ich kämpfe mit meiner Ansicht, dass ich mit einem Laden in meiner Seite mit einem Proxy laden, und es funktioniert perfekt. Aber sobald ich die gleiche Datenansicht mit dem gleichen srore aber einem externen lade, funktioniert es nicht.Wie wird ein tpl einer Datenansicht mit einem externen Speicher gerendert?

Dieses Beispiel funktioniert:

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', { erstrecken: 'Ext.FormPanel', renderTo: 'numbersChoice', alias: 'widget.NumbersChoicePanel', id: 'numbersChoice-Container'

,
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>' 
     ], 

]

initComponent : function() { 
    this.callParent(); 
}, 

});

Aber wenn ich will meinen Speicher extern in einer Datei wie folgt setzen:

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' }, 
     ] 
    }, 
], 

});

Und ich entferne Speicher: Ext.data.StoreManager.lookup ('employeeStore'), von Speicher: 'Axiastats.store.Numbers',

Der Speicher geladen wird, aber die tpl wird nicht mit ihm geladen

Antwort

0

Sie sollten den Speicher für die Datenansicht explizit erstellen: store: Ext.create('Axiastats.store.Numbers'). Dann entfernen Sie die singleton : true Konfiguration im Laden. Es wird wie erwartet funktionieren.

Verwandte Themen