2013-11-14 2 views
0

HTML을 생성하기 위해 콧수염 템플릿에 백본 모델을 입력으로 사용하고 있습니다.콧수염 템플릿의 백본 모델에서 캐리지 리턴 형식을 지정하는 방법

이름, 설명 및 ID와 같은 여러 속성이있는 백본 모델이 있습니다. description 속성은 캐리지 리턴을 포함 할 수 있으며 템플릿에서 렌더링 될 때 <br> 태그로 렌더링하려고합니다.

기본적으로 콧수염은 캐리지 리턴을 직접 출력하기 때문에 마크 업이 깔끔하게 보이지만 렌더링 된 결과는 중단되지 않습니다.

설명 속성에서 다른 속성 (예 : alt 또는 meta 태그)을 사용할 수 있으므로 특히 \ n \ r을 대체하지 않으려합니다.

내가 지금까지 가지고있는 유일한 생각은 형식이 지정된 텍스트가있는 중복 된 설명 속성을 추가하는 것입니다.

HTML 줄 바꿈 형식을 <br> 태그로 지정하는 Mustache는 없습니까?

답변

2

콧수염은 목적에 따라 매우 제한적입니다. 콧수염 템플릿에 특별한 것이 필요하다면, 콧수염의 보간과 반복이 그것을 처리 할 수 ​​있도록 자바 스크립트로 데이터를 준비하십시오. 콧수염에 해당 배열을 통해

// Adjust the regex to suit your data, this one is pretty loose. 
var lines = string.split(/[\r\n]+/) 
        .map(function(line) { return { line: line } }); 

다음 루프 : 귀하의 경우에는, 그 배열을 얻을 수 EOLs에 당신의 문자열을 분할 의미

{{#lines}} 
    {{line}}<br> 
{{/lines}} 
+0

감사 :

나는 우리가 IE8을 지원하는 데 필요한 것과 동일한 영향을 달성하기 위해 루프를 사용하여 끝났다. 이렇게하면 올바른 HTML을 출력하기 위해 모델에 특성을 추가해야하는 문제가 해결되지만 해결되지 않습니다. 모델은 뷰에 무관심해야합니다. – Fijjit

+0

지금까지 필자는 귀하의 제안을 모델에 새로운 속성을 추가하는 데 사용했습니다.이 템플릿은 라인으로 구성되어 있으며 템플릿은 반복되고
개의 태그를 추가합니다. – Fijjit

+0

하지만 템플릿보기에는 실제로 템플릿과 템플릿을 구동하는 JavaScript의 두 부분이 있습니다. 모델을 변경할 필요가 없으면 템플릿의 데이터를 설정하는 함수에서 템플릿을 래핑해야합니다. –

0

MU가 너무 짧은 대답이 올바른지이다. 나는 단지 .map 함수가 IE8 (및 이전 버전)에서 지원되지 않는다고 덧붙이고 싶다.

var descriptionArray = description.split(/[\r\n]+/); 
var descriptionLines = new Array(); 
for (var line = 0; line < descriptionArray.length; line++) { 
    descriptionLines.push({ Line: descriptionArray[line] }); 
} 
+1

질문에 backbone.js로 태그를 지정 했으므로 언더 코어에 액세스 할 수 있다고 가정합니다. 즉, @ mu가 __.map (description.split (/ [\ r \ n] + /), function() {...})' – nikoshr

+0

IE8과 호환 될까요? – Fijjit

+1

예, '_.map'은 IE8에서 작동해야합니다. – nikoshr