2013-08-06 3 views
0

그런 초보자 질문에 사과드립니다.하지만 저는 정말로 여기에서 붙어 있습니다.템플릿의 추적 변수 - 백본

누군가의 코드를 작성하고 이해하려고합니다.

나는이 템플릿 'temp.tmpl'가지고있다

:

<li class="icon mu status-{{state}} type-{{type}}" style="background-color:{{colour}};"> 
    <a href="#"> 
     <span class="top-stat"><span>{{topStatNumber}}</span><span>{{topStatModifier}}</span></span> 
     <span class="display-text">{{#if promotionName}}{{promotionName}}{{else}}{{name}}{{/if}}</span> 
    </a> 
</li> 

와 다음 뷰 :

define([ 
    'views/toolkitView', 
    'text!templates/components/temp.tmpl' 
], function(ToolkitView, MUItem) { 

    return ToolkitView.extend({ 

    template:MUItem, 

    events: { 
     "click a": "showActiveMU" 
    }, 

    showActiveMU: function() { 

     this.trigger("active:mu:selected", this.model.get("code")); 

     return false; 
    } 
    }); 
}); 

내가 변수가 템플릿이나 무엇을 렌더링하기하는 방법을 알아낼 수 아니에요을 템플릿 가 컴파일 중입니까?

+0

여기에 퍼즐 조각이 추가됩니다. 확장하는 "ToolkitView"에 있습니다. 그 코드를 보여 주시겠습니까? 뷰에 할당 된 모델의 데이터로 템플릿을 렌더링하는''ToolkitView'' 뷰에''initialize'' 함수가 있다고 추측합니다. –

+0

ToolkitView에서 모든 일이 일어나고 있습니다. 어떻게 this.trigger ("active : mu : selected", this.model.get ("code"));가 작동하는지 어떻게 아십니까? 답변으로 쓰시면 받아 드리겠습니다. 도와 주셔서 감사합니다! – RuntimeException

+0

위의 내 댓글에 대한 답변과 두 번째 댓글에 대한 추가 정보를 추가했습니다. –

답변

1

이 ToolkitView의 내용을 보지 않고 완전한 대답을하기 어렵다, 그러나 나는이에 무슨 일이라고 생각 :

새보기 extendsToolkitView, 그리고보기에서 방법을 상속합니다. 보기에 할당 된 모델의 데이터 (이 경우 define 문을 통해로드하는 MUItem 템플릿)를 사용하여 템플릿을 렌더링하는 템플릿보기를 취하는 render 메서드가있을 수 있습니다. ToolKitView을 "기본"으로 사용하면보기간에 일반적인 방법을 공유하고 필요에 따라이를 조정하거나 확장 할 수 있습니다.

showActiveMu에 대한 귀하의 의견에 따라 :이보기의 새 인스턴스를 만들고 모델을 할당하면보기에서 this.model을 통해 모델에 액세스 할 수 있습니다. 귀하의 경우,보기의 showActiveMU 메서드는 이벤트를 트리거하고, 모델에서 "코드"속성을 가져 와서 해당 이벤트를 수신하는 모든 함수에 인수로 전달합니다. 백본 이벤트에 대한 자세한 내용 here.

var Model = new FooModel(); 
var muItem = new MUView({model: fooModel}); 

// listen for event triggered by the view's showActiveMU event 
muitem.on('active:mu:selected', function (code) { 
    console.log(code); // the code from the model assigned to muItem view 
});