2013-09-24 5 views
13

EmberJS/핸들 막대를 사용하면 조건이 true 인 경우에만 요소에 클래스를 추가 할 수 있습니까?핸들 막대 조건부 클래스 속성

<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 구문 btw입니다 (최신 버전에는 사용되지 않음). –

+0

(새 것으로 bind-attr이라고 함) –

+0

감사합니다 - 내 대답을 업데이트했습니다 – chopper

9

당신은 부울 조건으로 {{bind-attr}} 도우미를 사용해야합니다, 당신은 read the guide about this을 할 수 있습니다. isSearching 속성은 컨트롤러에있는 경우 귀하의 경우에는

, 당신은 다음을 수행 할 수 있습니다 http://jsfiddle.net/NQKvy/240/

+0

가이드에 대한 링크가 끊어졌습니다. – bmavity

46

{{bind- :

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

당신이 바이올린에 전체 코드를 볼 수 있습니다 attr}}은 deprecated입니다. Ember 1.10 이상에서 새로 추가 된 bound attribute syntax을 다음과 같이 사용할 수 있습니다.

+0

이것은 내가 찾던 해답이다. Adam에게 감사한다. –