Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在senchatouch中动态填充列表视图数据_Javascript_Extjs_Extjs4_Sencha Touch 2_Sencha Touch 2.1 - Fatal编程技术网

Javascript 如何在senchatouch中动态填充列表视图数据

Javascript 如何在senchatouch中动态填充列表视图数据,javascript,extjs,extjs4,sencha-touch-2,sencha-touch-2.1,Javascript,Extjs,Extjs4,Sencha Touch 2,Sencha Touch 2.1,我想用下面的数组变量填充列表数据我已经设置了这个arrray来存储这里是数组中记录类型的列表 var logbookEntryList = []; var aircraftMxLog = new AircraftMxLog(); //domian aircraftMxLog.mxlogIdNum = mxLogIdNum; aircraftMxLog.entryDatetime = entryDatetime; aircraftMxLog.recordNa

我想用下面的数组变量填充列表数据我已经设置了这个arrray来存储这里是数组中记录类型的列表

   var logbookEntryList = [];

  var aircraftMxLog = new AircraftMxLog(); //domian 

    aircraftMxLog.mxlogIdNum = mxLogIdNum;
    aircraftMxLog.entryDatetime = entryDatetime;
    aircraftMxLog.recordName = recordName;
    aircraftMxLog.recordSourceId = recordSourceId;

     logbookEntryList.push(aircraftMxLog);


   var mxRelease = new MxRelease();
   mxRelease.mxReleaseTypeId = mxReleaseTypeId;
    mxRelease.entryDatetime = entryDatetime;
    mxRelease.comments = comments;
    mxRelease.firstName = firstName;
    mxRelease.lastName = lastName;

     logbookEntryList.push(mxRelease);

    var flightLog = new FlightLog();
    flightLog.flightNumId = flightNumId;
    flightLog.arvStationId = arvStationId;
    flightLog.deptStationId = deptStationId;
    flightLog.outDate = outDate;
    flightLog.offDate = offDate;

    logbookEntryList.push(flightLog);
所以像这样,我的数组中将有不同类型的数据,那么我如何将其映射到我的模型以在列表视图中填充

我尝试通过每个函数迭代存储,我能够在迭代中获得每个元素对象,但在动态迭代到list时无法设置itemtpl

这是密码

       createViewFactory :function(){
      var manageAmlStore=Ext.getStore('ManageAMLStore');
      manageAmlStore.setData(logbookEntryList);
     // this.getManageAmlStore().setData(logbookEntryList);
      //
        console.log('manage Aml store size '+manageAmlStore.getCount());
      var manageAmlList=Ext.getCmp('manageAMlList')
        manageAmlStore.each(function(item, index, length){
        //console.info(item,length,index);
        console.log('item '+item+' index '+index+' length '+length)
        console.log('item size '+item.length)
        if(logbookEntryList[index] instanceof AircraftMxLog){
            manageAmlList.setItemTpl('AircraftMxLog'+index);
         } else if(logbookEntryList[index] instanceof MxRelease){
            manageAmlList.setItemTpl('MxRelease'+index);
            // manageAmlList.initComponent();
              //manageAmlList.render();
         }else if(logbookEntryList[index] instanceof  FlightLog){
            manageAmlList.setItemTpl('FlightLog'+index);
          }else if(logbookEntryList[index] instanceof  MxAction){
            manageAmlList.setItemTpl('MxAction'+index);
         }
        //Ext.getCmp('manageAMlList').setItemTpl('test'+id)
         //this.getManageAmlList().setItemTpl('test'+id);
       });
      manageAmlList.bindStore(manageAmlStore);

     }

系统的问题是发送的是字符串而不是变量

“MxRelease”+索引是一个字符串,而不是先前声明的变量

要做类似的事情,您必须以这种方式创建一个对象

TEMPLATe = 
{    tplvar = 
     {
      mxrelease2 : 'your template',
     },
    'MxRelease2' : function(tplvar){return tplvar.mxrelease2;},
}

如果我没有错的话,这就是所谓的措辞(javascript)

我的回答帮了你吗?