2012-07-17 66 views
2

對於不同的崗位我讀我本來期望的是,下面的代碼應該工作:如何使用視圖作爲替代tr標籤

<tbody> 
    {{#each NewApp.router.gridController.tableContent}} 
     {{#view NewApp.TableRow rowBinding="this"}} 
      <td style="width: 100px">{{row.item_no}}</td> 
      <td align="right" style="width: 100px">{{row.price}}</td> 
      <td>{{row.name}}</td> 
     {{/view}} 
    {{/each}} 
</tbody> 

但我得到的只有空錶行。如果我使用tr,一切都按預期工作。

的的TableRow被定義爲:

NewApp.TableRow = Ember.View.extend({ 
    tagName: "tr", 

    row: null, 

    willInsertElement: function() { 
    console.dir(this.get("row")); 
    } 

}); 

順便說一句:console.dir示出正確的數據。

問候 羅傑

+0

你如何初始化在'Route'控制器和視圖的工作嗎?你能展示一些你的代碼嗎? – MilkyWayJoe 2012-07-17 20:27:33

回答

2

您可以在http://docs.emberjs.com/#doc=Ember.CollectionView&src=false看一看,它可以簡化您的代碼。

對於你的例子,使用{{view.row.XXX}}模板,它應該做

+0

確實{{view.row.XXX}}有效。 – rogergl 2012-07-17 21:20:32

+0

@rogergl這是由於視圖保留了父視圖的上下文。因此,要訪問當前視圖的上下文,您必須明確地以「查看」 – 2012-07-17 21:53:17

+0

作爲前綴的屬性感謝您的澄清。但是我發現的所有例子都沒有使用視圖前綴。也許一些最近的A​​PI更改? – rogergl 2012-07-18 08:21:25

相關問題