2015-04-22 100 views
0

我正在創建一個動態表組件(每個模型一行),它將動態地包含組件(每個對象在config中每列一列到模型中的關鍵字)。如何將動態值綁定到動態組件(Handlebars/EmberJS)

我試圖將模型鍵綁定到動態模型。

有關如何做到這一點給出以下任何想法?

Config對象:

deployment.js(控制器)

EDConfig: { 
    controller: this, 
    modelType: 'EscalationDetailModelGroup', 
    table: { 
     cols: [{ 
      header: 'Escalation Time', 
      cname: 'form-input-text', 
      content: { 
       value: model.escalationTime //obviously this wont work 
      } 
     },{ 
      header: 'Most Complex Alarm Level', 
      field: 'mostComplexAlarmLevelDispatched', 
      cname: 'form-input-text', 
      content: { 
       value: model.escalationTime //obviously this wont work 
      } 
     }] 
    } 
}; 

路由器型號:

deployment.js(路由器)

modelRange: [{ 
    id: 1, 
    escalationTime: '3 hours', 
    mostComplexAlarmLevelDispatched: 'N/A' 
}, { 
    id: 2, 
    escalationTime: '45 minutes', 
    mostComplexAlarmLevelDispatched: 'Level 3' 
}] 

個模板:

deployment.hbs

<h2>Deployments</h2> 
     {{table-list 
      config=EDConfig 
      data=model.escalationDetailModelGroups 
     }} 

表list.hbs

<table> 
    <thead> 
     <tr> 
      {{#each col in config.table.cols}} 
       <th>{{col.header}}</th> 
      {{/each}} 
     </tr> 
    </thead> 
    <tbody> 
     {{#each record in modelRange}} 
     <tr> 
      {{#each col in config.table.cols}} 
      <td> 
       {{component col.cname content=col.content}} 
      </td> 
      {{/each}} 
     </tr> 
     {{/each}} 
    </tbody> 
</table> 
+0

你想要的是每個'cols.content.value'中的'record'(來自每個循環)的值嗎?這個配置對象來自哪裏?我認爲它的時間爲http://emberjs.jsbin.com – givanse

+0

增加了一點信息。 –

回答

0

我真不知道你怎麼想合併/鏈接的數據,但我沒有按似乎並不重要。

我不認爲有必要將兩個數據源傳遞給您的table-list,但配置和模型之間的關係並不是您應該在模板中執行的操作。它更多的是數據修飾過程,這種類型的事情應該在控制器層面完成。

如何像:

// controller 
tableRows: function() { 
    var config = this.get('config'); 
    var model = this.get('model'); 
    config.forEach(function(col) { 
    // give each col a model reference 
    }); 
    return config; 
}.property('config', 'model') 

// template 
{{table-list data=tableRows}} 

我剛纔輸入的是把我的頭頂部,將需要調整最有可能的,但這個想法應該是清楚的。

+0

每個表格行代表'modelRange'數組內的一個模型,該行中的每一列都是該模型的一個屬性。該配置指定要顯示哪些屬性以及用於顯示哪些組件。你提供的例子並不能真正幫助我解決我的問題。我不確定你是否誤解了這個問題,或者我是否需要更多的信息來理解你的答案。 –

+0

一個jsbin會產生很大的差異,而不是僞代碼,我沒有時間去設置它 – givanse

+1

我發現了一種不同的方法,如果你有興趣看看我的新問題: http:///stackoverflow.com/questions/29851163/accessing-the-current-model-within-a-yield –