首先,我是一个extjs初学者。我无法使用ajax代理加载我的商店。
这是我的模特。
Ext.define('alertTemplates', {
extend: 'Ext.data.Model',
fields: ['text','config', {name: 'label', convert: function(v,record) {
if (Ext.isEmpty(record.data.text))
return nodeTemplate.apply(record.data.config);
else return record.data.text;
}}]
});
试图加载商店
var store = Ext.create('Ext.data.TreeStore', {
model: 'alertTemplates',
proxy:{
type: 'ajax',
url: '/alfresco/service/alertTemplates.json?alf_ticket=' + user.authTicket,
reader:{
root:'children',
type: 'json'
},
autoLoad: true,
excludeContext: true,
method: 'GET',
params: {
nodeRef: currentProject.nodeRef
},
scope: this,
listeners: {
load: function(){
console.log('loaded');
}
}
}
});
store.load();
我知道我正在检索数据。我之前使用过以下代码,响应中包含了我想要的json代码。我是以正确的方式接近这个吗?
Jx.Utils.ajax({
url: '/alfresco/service/alertTemplates.json?alf_ticket=' + user.authTicket,
excludeContext: true,
method: 'GET',
params: {
nodeRef: currentProject.nodeRef
},
scope: this,
success: function (response)
{
var alertTemplates = response.json;
console.log(alertTemplates);
store.loadRawData(alertTemplates,true);
},
failure: console.log('failed')
});
答案 0 :(得分:0)
我在商店里注意到的一些事情:
另外,我不确定excludeContext是什么。您使用的是哪个版本的EXTJS?
这里有一些重新组织给你一个想法。如果autoLoad为true,则无需手动加载。
var store = Ext.create('Ext.data.TreeStore', {
model: 'alertTemplates',
autoLoad: true,
proxy:{
type: 'ajax',
url: '/alfresco/service/alertTemplates.json?alf_ticket=' + user.authTicket,
method: 'GET',
reader:{
root:'children',
type: 'json'
},
//excludeContext: true,
params: {
nodeRef: currentProject.nodeRef
}
},
scope: this,
listeners: {
load: function(){
console.log('loaded');
}
}
});