Использование EmberJS/Handlebars, как я могу добавить класс к элементу, только если условие истинно?Ручные атрибуты условного класса
<div {{#if isSearching}}class="foo"{{/if}}></div>
Нравится, но меньше псевдокода и больше реальности.
Использование EmberJS/Handlebars, как я могу добавить класс к элементу, только если условие истинно?Ручные атрибуты условного класса
<div {{#if isSearching}}class="foo"{{/if}}></div>
Нравится, но меньше псевдокода и больше реальности.
Это не сработает, потому что помощник {{#if}}
создаст теги в вашем HTML. Сделайте это вместо того, чтобы:
<div {{bind-attr class="isSearching:foo"}}></div>
bindAttr - это «старый» синтаксический синтаксис btw (не используется с более поздними версиями). –
(это называется bind-attr в новом) –
Спасибо - я обновил свой ответ – chopper
Вы должны использовать {{bind-attr}}
помощника с логическим условием, вы можете read the guide about this.
В вашем случае, если свойство isSearching находится в контроллере, вы можете просто сделать следующее:
<div {{bind-attr class="isSearching:foo"}}></div>
Вы можете увидеть весь код в этой скрипке: http://jsfiddle.net/NQKvy/240/
Ваша ссылка на руководство нарушена. – bmavity
{{bind- attr}} - deprecated. Вы можете использовать новый гораздо более приятный bound attribute syntax в Ember 1.10 и выше, например:
<div class="{{if isSearching 'foo'}}"></div>
Это ответ, который я искал, благодаря Адаму. –
Ну, это работает. Вы можете отправить список классов в качестве переменной данных шаблона и использовать его вместо этого, если вы предпочитаете обрабатывать эту вещь вне шаблона. Или вы можете использовать собственный вспомогательный метод ... Но на самом деле, что вы получили, это более простой способ. –
@SimonBoudrias Но это не сработает. Он избегает всех свойств после оператора if. – alt