2014-06-25 37 views
0

我是Sencha Touch的新手,面临tpl vars的问题。我有下面的代码在我的列表视图控制器推下一个视图:Sencha Touch 2.3.2:在推送视图中使用记录数据

onProjectListItemTap: function(list, index, target, record) { 
    console.log('onProjectListItemTap'); 
    // load the detail 
    var navigationView = list.up('navigationview'); 
    navigationView.push({ 
     title: record.data.projectName, 
     xtype: 'projectdetail', 
     record: record 
    }); 
} 

而且这是在“projectdetail”视图代码:

Ext.define('Antea.view.project.projectDetail', { 
extend: 'Ext.Panel', 

xtype: 'projectdetail', 

config: { 
    layout: 'vbox', 
    items:[{ 
     xtype: 'panel', 
     flex:1, 
     store: 'projects', 
     tpl:+ 
      '<div id="projectHeader" style="background-image: url({projectHeader})"></div>'+ 
      '<div class="projectItemHolder">'+ 
       '<h2 class="pageHeaderH2">{projectname}</h2>'+ 
      '</div>', 
    }] 
} 

在这种情况下,第三方物流增值经销商不工作。当我将tpl外部项目并直接在配置中工作时。我正在使用sencha touch 2.3.2。我也发现这个帖子:Sencha Touch TPL and ITEM这是非常类似于我的问题,尝试,但不知何故,这对我来说不会工作(也许是因为我是一个完整的初学者)。希望任何人都可以在这里帮助我!

回答

0

我认为问题是,你正在混合tpl和项目,这似乎不工作。如果你将tpl移出配置对象以保持清洁,那将是最好的选择。当然我也会添加模板的方式,他们也建议在docs

Ext.define('Antea.view.project.projectDetail', { 
    extend: 'Ext.Container', // use container instead of panels its one wrapper less 

    xtype: 'projectdetail', 

    config: {}, 

    // method will be called by the sencha framework 
    initialize: function() { 
     this.callParent(); 
     this.addTemplate(); 
     this.setData(this.getRecord().getData()); 
    }, 

    addTemplate: function() { 

     t = new Ext.Template(
      '<div id="projectHeader" style="background-image: url({projectHeader})"></div>'+ 
      '<div class="projectItemHolder">'+ 
       '<h2 class="pageHeaderH2">{projectname}</h2>'+ 
      '</div>', 

      { 
       compiled: true, // compile immediately 
       disableFormats: true // faster 
      } 
     ); 

    t.compile(); 
    this.setTpl(t);    
    } 
}); 

希望帮助!

+0

您的版本对我来说更有意义!但是,当我使用你的代码时,它什么都不输出。只是一个空的.x内部div。你有什么想法,为什么?那this.callParent();功能呢? – Tober

+0

我已经调整了初始化函数中的代码。希望有效 - 数据将被明确地再次设置。如果它不起作用,那么检查this.getRecord()是否有正确结构的记录。 this.callParent()执行框架函数initialize的代码,以确保我们不会因重写此方法而错过重要的代码片段。 –

相关问题