Sencha touch 如何根据sencha touch中其他商店的商品动态设置itemTpl?

Sencha touch 如何根据sencha touch中其他商店的商品动态设置itemTpl?,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我有两家商店。SortStore和WorkStore 这是模型中的“我的工作存储”字段: {name: 'domainName',type:'string',mapping:'DomainName'}, {name: 'objectId',type:'string',mapping:'ObjectID'}, {name: 'serverName',type:'string',mapping:'ServerName'},

我有两家商店。SortStore和WorkStore

这是模型中的“我的工作存储”字段:

          {name: 'domainName',type:'string',mapping:'DomainName'},
          {name: 'objectId',type:'string',mapping:'ObjectID'},
          {name: 'serverName',type:'string',mapping:'ServerName'}, 
          {name: 'sourceWorkset',type:'string',mapping:'SourceWorkset'},
          {name: 'sourceWorkstep',type:'string',mapping:'SourceWorkstep'}, 
         ['name', 'value']
这是模型中我的SortStore字段:

          {name: 'domainName',type:'string',mapping:'DomainName'},
          {name: 'objectId',type:'string',mapping:'ObjectID'},
          {name: 'serverName',type:'string',mapping:'ServerName'}, 
          {name: 'sourceWorkset',type:'string',mapping:'SourceWorkset'},
          {name: 'sourceWorkstep',type:'string',mapping:'SourceWorkstep'}, 
         ['name', 'value']
我想根据sortstore中的项目在列表中显示来自工作存储的数据。如果排序存储具有域名和对象id,则列表应仅填充工作存储中的那些值。商店通过webservice调用动态加载

       {
            xtype:'list',
            id:'workitemlist',
             // store:'WorkitemStore',
            itemTpl:'<table><tr><td valign="top"><img src="{workitemImage}" width=20px height=22px />' +
                '&nbsp;&nbsp;</td><td><span><b>{workitemName}</b></span> <br/>' +
                '<span class="label">Object Id:</span> {objectId} <br /><span class="label">' +
                'Source Workstep: </span>{sourceWorkstep}</td> </tr></table>'


        }
{
xtype:“列表”,
id:'workitemlist',
//存储区:'WorkitemStore',
itemTpl:'+
“{workitemName}
”+ '对象Id:{objectId}
'+ '源工作步骤:{sourceWorkstep}' }

我不需要在itemTpl中打印所有这些内容,只需要sortstore中存在的内容就可以填充。如何基于其他商店中的项目动态设置此itemTpl。非常感谢您的帮助。

我们可以通过以下方式动态设置itemTpl:

  var template = '<table><tr><td valign="top"><img src="{Image}"' +
        ' width=20px height=22px />' +
        '&nbsp;&nbsp;</td><td><span><b>{Name}</b></span> <br/>';
    var myStore = Ext.getStore('RealStore');
    if (myStore != null) {
        myStore.each(function (record) {
            if (record.get('field')) {
                template += '<span class="label">Domain Name:</span>' +
                    ' {field} <br/>';
            }
  }
var模板=“”+
“{Name}
”; var myStore=Ext.getStore('RealStore'); if(myStore!=null){ myStore.each(函数(记录){ if(record.get('field')){ 模板+='域名:'+ “{field}
”; } }
我们可以通过以下方式动态设置itemTpl:

  var template = '<table><tr><td valign="top"><img src="{Image}"' +
        ' width=20px height=22px />' +
        '&nbsp;&nbsp;</td><td><span><b>{Name}</b></span> <br/>';
    var myStore = Ext.getStore('RealStore');
    if (myStore != null) {
        myStore.each(function (record) {
            if (record.get('field')) {
                template += '<span class="label">Domain Name:</span>' +
                    ' {field} <br/>';
            }
  }
var模板=“”+
“{Name}
”; var myStore=Ext.getStore('RealStore'); if(myStore!=null){ myStore.each(函数(记录){ if(record.get('field')){ 模板+='域名:'+ “{field}
”; } }
不确定这是否是最好的方法,但我过去实现它的方法是保留templateId的JSON(使用区分字段,例如“tpl”+字段)和我的应用程序的templateContent,并在启动时将其加载到变量(tpls)中。加载后,我可以从任何地方引用它,如下所示:

var styleTemplate = eval('tpls.tpl_' + rec.field);
{
xtype: 'list',
itemTpl : styleTemplate,
store : listStore,
id : 'ilid',
layout : 'fit'
}
然后将其传递到如下列表:

var styleTemplate = eval('tpls.tpl_' + rec.field);
{
xtype: 'list',
itemTpl : styleTemplate,
store : listStore,
id : 'ilid',
layout : 'fit'
}

不确定这是否是最好的方法,但我在过去实现它的方式是为我的应用程序保留templateId(使用区分字段,例如“tpl”+字段)和templateContent的JSON,并在启动时将其加载到变量(tpls)中。加载后,我可以从任何地方这样引用它:

var styleTemplate = eval('tpls.tpl_' + rec.field);
{
xtype: 'list',
itemTpl : styleTemplate,
store : listStore,
id : 'ilid',
layout : 'fit'
}
然后将其传递到如下列表:

var styleTemplate = eval('tpls.tpl_' + rec.field);
{
xtype: 'list',
itemTpl : styleTemplate,
store : listStore,
id : 'ilid',
layout : 'fit'
}