2012-05-21 3 views
6

요소의 속성 내부에 도우미 블록을 사용해야합니다. 어떻게 얻을 수 있습니까핸들 모음 블록 도우미가 HAML에 걸렸습니다

.some.class{:class => "{{if property}} otherClass {{/if}}"} 

제대로 구문 분석 할 수 있습니까? 여기에 그대로 컴파일 된 출력 : 나는 작은 따옴표를 시도하고 간격을 조정, 모든 비 단어 문자를 탈출 시도했습니다

<div class='class otherClass property}} some {{/if}} {{if'></div> 

,하지만 아무것도 그것을 해결하기 위해 보인다. 간단하게 : plain 키워드를 사용하는 것보다 더 우아한 해결책을 찾고 싶습니다.

+3

죄송합니다 (또는 분명히 나는 ​​또 다른 6 시간 동안 할 수 없음),하지만 난 여기에 실제로 작동하는 솔루션을 발견 . haml이 속성의 클래스를 "도트 체인"의 클래스와 결합하는 방식에 문제가있는 것으로 보입니다. 이걸로 바꾸면 잘 작동하는 것 같습니다. % div {: class => "some class {{if if}}"} – user1408632

+1

솔루션을 답으로 게시하면 나중에 답변을 드리겠습니다. 그 트릭은 완전히 효과가있었습니다! 감사. – poweratom

답변

1

{{}} 전에 캐릭터를 추가해야 함을 받아 들였습니다. 예를 들면 다음과 같습니다.

%div.some.class{:class => "a{{foo}}"} 

잘 모르겠지만 제 목적이 있습니다.

0

사실, 트릭은 다소 복잡한 핸들 바 식에 대해서는 작동하지 않습니다.

결국 나는 haml에서 문자열 리터럴을 사용하여이 문제를 해결했습니다. 그래서 질문에 표시된 예제의 경우. 아래의 haml이 필요합니다. 마지막 줄인 태그를 닫아야합니다.

\ <div class='class {{if property}} otherClass {{/if}} some '> 
-# Normal haml goes here and must not start at the same indent as the above literal 
\ </div> 
0

클래스 속기 표기법과 클래스 속성을 모두 사용하는 대신 모든 클래스를 class 속성으로 이동하십시오.

.col-md-12.card{ class: "{{toLowerCase level_name}}-master-card" } 

이된다

%div{ class: "col-md-12 card {{toLowerCase level_name}}-master-card" } 

HAML 내 자신의 질문에 대답하기위한 4.0.7

관련 문제