2011-07-30 5 views
7

비취/밑줄이있는 백본을 사용하여 템플릿에 대해 약간 혼란스러워지고 있습니다.Backbone.js 비취와 루핑 모델

두 개의 어레이가있는 백본 모델이 있는데 배열 속성을 렌더링하는 방법을 모르겠습니다. 별도의 백본 컬렉션 & 뷰로 이동할 수는 있지만이 경우 과도한 것처럼 보입니다.

 //in my JavaScript 
     this.template = _.template($("#some-template").html()); 

     //in my .jade template 
     input.text(type='text', name="name", value='{{name}}') 

제가 해결하고자하는 방법이다 :

은 내가 나를 모델이 영주의 속성을 렌더링 할 수 있습니다 내 백본 파일

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

에 다음 this blog post on using backbone with jade을 따라 추가 모델의 배열 중 하나에서 간단한 루프를 수행하십시오. 예 :

- for (var child in children) 
     {{child}} 

하지만 등 올바른 구문, 옥 시작에 대해 매우 혼란 메신저 및 인수 강조 감사합니다.

답변

5

브라우저에서 비취를 사용할 수 없습니다. 기술적으로는 가능하지만 일반적으로 밑줄이 아닌 백본과 함께 사용하는 것은 일반적이지 않습니다. 거기에 밑줄 템플릿이 사용됩니다. The docs on _.template 자바 스크립트를 평가하고 _.each 메서드를 사용하여 모델의 배열 특성을 반복 할 수 있음을 보여줍니다.

보기의 render 함수 내에서 이렇게 보일 것입니다. 효율성을 위해 뷰의 속성으로 템플릿 함수를 캐시하고 싶지만 여기서는 간단하게 인라인으로 설명합니다. 예를 들어 모델의 경우 드라이버 이름의 배열로 drivers의 목록이 있다고 가정합니다. 이 예제는 보간 스타일 (<%=) 및 템플릿 마크 업의 평가 양식 (<%)을 모두 포함로 템플릿 설정에 evaluate 구문을 제공해야합니다

var template = "<% _.each(model.drivers, function(name) { %> <li><%= name %></li> <% }); %>"; 
return _.template(template, this); 

참고. 현재는 콧수염 스타일 보간만으로 충분하지 않습니다.

관련 문제