首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sencha Touch 1.1。我需要从Array Javascript变量填充Ext.List对象,而不是使用代理

Sencha Touch 1.1。我需要从Array Javascript变量填充Ext.List对象,而不是使用代理
EN

Stack Overflow用户
提问于 2012-03-15 23:41:26
回答 2查看 1.4K关注 0票数 1

我正在使用sencha touch 1.1,特别是使用Ext.List。但是,我不需要使用代理来填充Ext.List对象,而是需要直接从数组javascript变量加载数据,比如

代码语言:javascript
复制
var = [["1","Ángel Quezada"],["2","Christian Herrera"],["3","Francisco Quispe"]]

我以代理的方式填充Ext.List没有任何问题,首先我声明le模型,然后声明代理,最后声明列表。根据接下来的几行。

代码语言:javascript
复制
    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变量填充列表,而不是使用代理

如何使用

代码语言:javascript
复制
var varArray = [["1","Ángel Quezada"],["2","Christian Herrera"],["3","Francisco Quispe"]]

要填充Ext.List,我想有一种方法可以使用Ext.data.Store及其load方法。但是我找不到它。

EN

回答 2

Stack Overflow用户

发布于 2012-03-17 14:43:55

这是一种不使用静态数据的动态方法。

代码语言:javascript
复制
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){}}
  });

//这里是动态方法。

代码语言:javascript
复制
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 data = [["1","Ángel Quezada"],["2","Christian Herrera"],["3","Francisco Quispe"]];
addToList(data);
票数 0
EN

Stack Overflow用户

发布于 2012-03-16 06:21:20

代码语言:javascript
复制
    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对象:

代码语言:javascript
复制
    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(data);函数

我还没有亲自测试过这段代码,所以如果它不工作,请告诉我

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9723140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档