2014-06-25 36 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的代碼,以確保我們不會因重寫此方法而錯過重要的代碼片段。 –

相關問題