我正在努力解决这个问题,即我使用代理加载了我的页面中的商店,并且它的工作非常完美。但是,只要我使用相同的srore加载相同的数据视图,但是外部的那个,它就不起作用。
此示例有效:
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',{ extend:'Ext.FormPanel', renderTo:'numbersChoice', 别名:'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();
},
});
但是如果我想将我的商店外部放在这样的文件中:
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 :(得分:0)
您应该为数据视图显式创建商店:store: Ext.create('Axiastats.store.Numbers')
。
然后删除商店中的singleton : true
配置。它将按预期工作。