Sencha touch Sencha Touch 1.1。我需要从数组Javascript变量而不是代理填充Ext.List对象
我在sencha touch 1.1中工作,特别是使用Ext.List。但我需要直接从数组javascript变量加载数据,而不是使用代理来填充Ext.List对象,如Sencha touch Sencha Touch 1.1。我需要从数组Javascript变量而不是代理填充Ext.List对象,sencha-touch,extjs,Sencha Touch,Extjs,我在sencha touch 1.1中工作,特别是使用Ext.List。但我需要直接从数组javascript变量加载数据,而不是使用代理来填充Ext.List对象,如 var = [["1","Ángel Quezada"],["2","Christian Herrera"],["3","Francisco Quispe"]] 我用代理的方式填充Ext.List没有任何问题,首先我声明了le模型,然后是代理,最后是列表。根据下一行 Ext.regModel('Cronograma',
var = [["1","Ángel Quezada"],["2","Christian Herrera"],["3","Francisco Quispe"]]
我用代理的方式填充Ext.List没有任何问题,首先我声明了le模型,然后是代理,最后是列表。根据下一行
Ext.regModel('Cronograma', {
idProperty: 'nrocuota',
fields: [{name:'nrocuota', type: 'string'}]
});
Ext.regStore('CronogramaStore', {
model: 'Cronograma',
proxy: {
type :'ajax',
url: '/mSAS/cotizacion.do?method=generarCronograma',
reader: {type:'array'}
}
});
this.grdCronograma = new Ext.List({
id: 'notesList',
store: 'CronogramaStore',
emptyText: 'No existe resultado ',
itemTpl: '{nrocuota}',
listeners: {'render':function(thisComponent){}}
});
但我知道我还有另一个需要。我需要从数组Javascript变量填充列表,而不是使用代理
我怎样才能使用电脑
var varArray = [["1","Ángel Quezada"],["2","Christian Herrera"],["3","Francisco Quispe"]]
要填充Ext.List,我想有一种方法可以使用Ext.data.Store及其加载方法。但是我找不到它
Ext.regModel('Cronograma', {
idProperty: 'nrocuota',
fields: [{name:'nrocuota', type: 'string'}]
});
Ext.regStore('CronogramaStore', {
model: 'Cronograma',
data : [
{ nrocuota : 'Ángel Quezada' },
{ nrocuota : 'Christian Herrera' },
{ nrocuota : 'Francisco Quispe' }
]
});
this.grdCronograma = new Ext.List({
id: 'notesList',
store: 'CronogramaStore',
emptyText: 'No existe resultado ',
itemTpl: '{nrocuota}',
listeners: {'render':function(thisComponent){}}
});
更新以使用数组而不是json对象:
Ext.regModel('Cronograma', {
idProperty: 'id',
fields: [ 'id', 'nrocuota' ]
});
var data = [["1","Ángel Quezada"],["2","Christian Herrera"],["3","Francisco Quispe"]];
Ext.regStore('CronogramaStore', {
model: 'Cronograma',
data : data
});
this.grdCronograma = new Ext.List({
id: 'notesList',
store: 'CronogramaStore',
emptyText: 'No existe resultado ',
itemTpl: '{nrocuota}',
listeners: {'render':function(thisComponent){}}
});
或者,如果在创建存储时没有可用数据,则使用store.loadData(数据)代码>功能
我自己还没有测试过这段代码,所以如果它不起作用,请告诉我这是一种动态的方法,不使用静态数据
Ext.regModel('Cronograma', {
idProperty: 'nrocuota',
fields: [{name:'nrocuota', type: 'string'}]
});
Ext.regStore('CronogramaStore', {
model: 'Cronograma'/*,
data : [
{ nrocuota : 'Ángel Quezada' },
{ nrocuota : 'Christian Herrera' },
{ nrocuota : 'Francisco Quispe' }] */ // Does not take array [[],[],[]] that was specified in problem statement
});
this.grdCronograma = new Ext.List({
id: 'notesList',
store: 'CronogramaStore',
emptyText: 'No existe resultado ',
itemTpl: '{nrocuota}',
listeners: {'render':function(thisComponent){}}
});
//这里是动态方法
function addToList(data){
var len = data.length;
for(var i=0;i<len;i++){
var note = Ext.ModelMgr.create({
nrocuota: data[i][1], //grab only name from the array
}, 'Cronograma');
CronogramaStore.add(note);
CronogramaStore.sync();
}
}
这是静态方法,问题严格要求使用数组。他没有指定数据在创建时可用,如果数据可用,那么在我的方法中,他只需要在数据配置中传递数组,他从来没有说过要创建空存储,然后填充之后的项:)“我需要直接从数组javascript变量加载数据,如var=[[“1”、“Ángel Quezada”]、[“2”、“Christian Herrera”]、[“3”、“Francisco Quispe”]]“这是问题陈述,我没有看到要从数组加载的数据。请参见“答案未解决问题”下被否决的答案。如果您的解决方案适用于数组[[]、[]、[]、而不是[{}、{}、{}、{}],我会很高兴。迭代数据并创建记录并手动将其添加到存储不是一个好做法,您应该使用store.loadData(data)方法,因此存储将自动执行您在这里手动执行的操作为什么这不是一个好做法,如何使用store.loaddata在某个索引处插入数据。另外,如果您转到sencha-touch.js,store.loaddata也会做同样的事情。为什么sencha框架本身使用这种“不好的做法”。因为如果库以某种方法执行相同的操作,那么为什么不使用它而不是创建我们自己的逻辑,并且对于在存储区填充后插入数据,我们可以使用add或insert方法,但是用户表示他已经有了数组数据,那么为什么只需一个函数调用就可以实现同样的功能,却要编码10行,用户是否询问在某个索引中插入数据?用户肯定不会询问在某个索引中插入,因为他说我回答了您的“错误做法评论”,还创建了模型(作为一个原语)将比使用loaddata更高效。因此,不使用loaddata的原因是“效率”。如何回答使用modelmgr是一种不好的做法?让我们不要深入讨论偏离用户答案的问题,让用户决定该做什么:)
var data = [["1","Ángel Quezada"],["2","Christian Herrera"],["3","Francisco Quispe"]];
addToList(data);