2013-01-16 3 views
0

html 마크 업 준비가되어 있습니다.이 마크 업에는 변수가 추가/업데이트되고 싶습니다.백본과 밑줄을 사용하여 값만 렌더링하는 방법은 무엇입니까?

백본과 밑줄을 사용하여 어떻게해야합니까? 나는 다음을 시도

,

백본 :

testView = Backbone.View.extend({ 
    initialize: function(){ 
     this.render(); 
    }, 

    render: function(){ 
     var variables = {reqNumber: 10}; 
     /*This is where I'm having problems, how do I use only variables in my template?? 
     * How do I write this next line 
     */ 
     var template = _.template(this.$el.html(), variables); 

     this.$el.html(template); 
    } 
}); 

var test_view = new testView({ el: $("div.container") }); 

HTML :이 작품 같은

<a href="#"> 
    <i class="icon-home icon-white"></i> 
    Requests <span class="badge badge-warning"><%= reqNumber %></span> 
</a> 

답변

0

뭔가. 문제는 템플릿이 어디에 있는지 알지 못했기 때문에 $ el은 템플릿이 아니라 뷰의 컨테이너를 가리킨다 (템플릿 스크립트 참조).

JS :

$(function() { 
    var testView = Backbone.View.extend({ 
     initialize: function(){ 
      this.render(); 
    }, 
    render: function(){ 
     var variables = {'reqNumber': '10'}; 
     var template = _.template($('#test-templ').html(), variables); 

     this.$el.html(template); 
    } 
    var test_view = new testView({ el: $("div.container") });}); 
}); 

는 HTML :

<script id="test-templ" type="text/html"> 
    <a href="#"> 
     <i class="icon-home icon-white"></i> 
     Requests <span class="badge badge-warning"><%= reqNumber %></span> 
    </a> 
</script> 
<div class="container"></div> 
+0

그래서 내가 "모든"에 대한 템플릿을 필요합니까? 밑줄과 백본이 어떻게 작동합니까? –

+0

인스턴스화하는 모든 뷰에 템플리트가 필요하지 않지만 일반적으로 'el'속성을 정의해야합니다. 이는 뷰의 컨테이너가 될 것이기 때문입니다. –

+0

감사합니다. 백본에서 좋은 링크가 있습니까? –

관련 문제