2014-02-06 38 views
2

我有model其中(旁邊的其他字段)有id字段。主要的問題是如何做到以下幾點:
<tr class="{{tableStripes id}}">其中tableStripes的助手定義爲:把手插值元素屬性?

Ember.Handlebars.helper('tableStripes', function(index) { 
    return (index % 2) ? "even" : "odd"; 
}); 

更有趣的(​​對我來說)是最後的結果在瀏覽器中:

<tr class="<script id='metamorph-10-start' type='text/x-placeholder'></script>even<script id='metamorph-10-end' type='text/x-placeholder'></script>"> 

從哪裏自帶?正如我可以看到助手返回好結果(腳本標記之間的「偶數」)。

+0

是'''Ember.Handlebars.helper'''''' Ember.Handlebars.registerBoundHelper'''? – Viele

+0

是的,它是一樣的。 – Kingpin2k

回答

1

你需要unbound,如果你不希望它將metamorph注入類中。有一個警告不過,如果你正在改變數據,綁定將不更新,你會想在另一種可能性看看下面

<tr class="{{unbound tableStripes id}}"> 

你也可以模仿助手bind-attr是怎麼做的:bind-attr source

+0

感謝它的工作。我新來的燼(和句柄)你能解釋什麼是變質嗎?順便說一下,我也嘗試以下列方式綁定attr: 我認爲即時通訊做錯了。 – Srle

+0

是的,Ember將綁定屬性與metamorph腳本標籤包裝起來,這樣它就可以在dom中找到並替換單個屬性,而無需重新繪製整個dom。所以他們基本上是佔位符。當你使用解除綁定時,它不會注入這些佔位符,因爲你告訴它我不打算更新這些屬性,所以不需要跟蹤它們在哪裏。 – Kingpin2k

+0

我將'bind-attr'作爲一個代碼示例,您可以爲自己的用途複製,bind-attr不支持作爲參數之一傳遞幫助器。 – Kingpin2k