2013-09-24 58 views
13

使用EmberJS /把手,我怎樣才能添加一個類到一個元素,只有當條件爲真?把手條件類屬性

<div {{#if isSearching}}class="foo"{{/if}}></div> 

就像那樣,但少了僞代碼和更多的現實。

+0

那麼,這是工作。您可以將班級列表作爲模板數據變量發送,如果您更喜歡在模板之外處理這些內容,則可以使用它。或者你可以使用自定義幫手方法......但是,真的,你得到的是更簡單的方法。 –

+0

@SimonBoudrias但它不起作用。它在if語句之後轉義所有的屬性。 – alt

回答

5

這是行不通的,因爲{{#if}}幫手會在你的HTML中創建標籤。做到這一點,而不是:

<div {{bind-attr class="isSearching:foo"}}></div> 
+1

bindAttr是「老」Ember語法順便說一句(不適用於更新的版本)。 –

+0

(在新版本中稱爲bind-attr) –

+0

謝謝 - 我更新了我的回答 – chopper

9

您必須使用{{bind-attr}}助手用布爾條件,你可以read the guide about this

在你的情況下,如果isSearching屬性是控制器,你可以做到以下幾點:

<div {{bind-attr class="isSearching:foo"}}></div> 

你可以看到在這個小提琴整個代碼:http://jsfiddle.net/NQKvy/240/

+0

您的指南鏈接已損壞。 – bmavity

46

{{bind- attr}}是deprecated。你可以在Ember 1.10及更高版本中使用新的更好的bound attribute syntax,如下所示:

<div class="{{if isSearching 'foo'}}"></div>  
+0

這是我正在尋找的答案,謝謝Adam。 –