2012-09-03 9 views
2

Sinatra에서 호스팅되고 ERB 스크립트를 통해 렌더링되는 Backbone.js 응용 프로그램이 있습니다.HAML로 "%% ="렌더링

<div id="<%%= variable %>"> 

여분의 "%"는 그 변수의 렌더링을 탈출하고 무엇을 단일 "%"로 렌더링 : 변수가과 같이 ERB에서 렌더링되도록 백본 템플릿은 밑줄 템플릿 기능을 사용하는 밑줄 템플릿 라이브러리가 나타납니다. 작동하지 않았다 어떤

#"<%= id %>" 

: HAML로 업그레이드하는 동안

나는 다음을 시도했다. HAML과 동일한 작업을 어떻게 수행합니까? 기본적으로

%div{:id => "<%= id %>"} 

, HAML이 속성을 탈출합니다

답변

2

첫째, 같은 값을 가진 id를 만들 # 바로 가기를 사용할 수 없습니다, 당신은 그것에게 먼 길을해야 할 것이다 그래서 이것은 다음과 같은 것을 만들어 낼 것입니다 :

<div id='&lt;%= id %&gt;'></div> 

이것은 아마도 당신이 원하는 것이 아닙니다. :escape_attrs option을 false로 설정하여 속성을 이스케이프 처리 할 수 ​​있습니다.

<div id='<%= id %>'></div> 

참고이 옵션 효과 문서의 모든 속성이 다음 원하는 출력을 생성합니다.

대안은 delimiters in your templates의 다른 세트를 사용하는 것입니다. 예를 들어, 당신은이에 {{...}}을 사용할 수

_.templateSettings = { 
    interpolate : /\{\{(.+?)\}\}/g 
}; 

이제 HAML는 속성 값을 탈출하지 않습니다.

관련 문제