Używając EmberJS/Handlebars, jak dodać klasę do elementu, tylko jeśli warunek jest prawdziwy?Atrybuty klasy warunkowej Handlebars
<div {{#if isSearching}}class="foo"{{/if}}></div>
Tak samo, ale mniej pseudokodu i więcej rzeczywistości.
Używając EmberJS/Handlebars, jak dodać klasę do elementu, tylko jeśli warunek jest prawdziwy?Atrybuty klasy warunkowej Handlebars
<div {{#if isSearching}}class="foo"{{/if}}></div>
Tak samo, ale mniej pseudokodu i więcej rzeczywistości.
To nie zadziała, ponieważ pomocnik {{#if}}
utworzy znaczniki w kodzie HTML. Czy to w zamian:
<div {{bind-attr class="isSearching:foo"}}></div>
bindAttr jest "starą" składnią Ember btw (nie jest używane z nowszymi wersjami). –
(nazywa się bind-attr w nowym) –
Dzięki - zaktualizowałem swoją odpowiedź – chopper
Musisz użyć {{bind-attr}}
pomocnika warunku logicznego można read the guide about this.
W przypadku, gdy nieruchomość isSearching jest w sterowniku, można po prostu wykonaj następujące czynności:
<div {{bind-attr class="isSearching:foo"}}></div>
Można zobaczyć cały kod w tym skrzypce: http://jsfiddle.net/NQKvy/240/
Twój link do przewodnika jest zepsuty. – bmavity
{{bind- attr}} to deprecated. Można użyć nowej znacznie ładniejszy bound attribute syntax w Ember 1.10 i wyżej, tak jak poniżej:
<div class="{{if isSearching 'foo'}}"></div>
Oto odpowiedź, której szukałem, dzięki Adamowi. –
Dobrze, że działa. Możesz wysłać listę klas jako zmienną danych szablonu i użyć jej zamiast tego, jeśli wolisz przetwarzać te rzeczy poza szablonem. Lub możesz użyć niestandardowej metody pomocnika ... Ale tak naprawdę to, co masz, jest prostsze. –
@SimonBoudrias Ale to nie działa. Unika wszystkich właściwości po instrukcji if. – alt