2013-09-30 6 views
0

현지화 된 템플릿을 사용하여 백본으로 샘플 코드를 만들었습니다. 그러나 왜 작동하지 않는지 디버깅 할 수는 없습니다. 도와주세요. 이 코드는 아래 경로에서 사용할 수 있습니다.현지화 템플릿이 포함 된 백본

http://jsfiddle.net/nagesforyou/kdDMK/

var resource = {localizedHeader : "localized header in english"}; 

var BaseView = Backbone.View.extend({ 
    localizedTemplate : function(element) { 
     self : this; 
     this.template = _.template(element.html()); 

     return function(data) { 
      return self.template($.extend({},data,resource)); 
     }; 
    } 
}); 

var DerivedView = BaseView.extend({ 
    initialize: function(options) { 
     this.model = options.model; 

     this.template = this.localizedTemplate($("#someTemplate")); 
    }, 

    render : function() { 
     var output = this.template(this.model.toJSON()); 
     this.$el.append(output); 
     return this; 
    } 
}); 

var someModel = Backbone.Model.extend({ 

}); 

var mdl = new someModle({someNmae : "surendhar"}); 
var derivedView = new DerivedView({model: mdl, el:$('body')}); 
derivedView.render(); 


<script type="text/template" id="someTemplate"> 
    <div> 
     Sometext 
     <div> <%= localizedHeader%> </div> 
     <div> <%= someName %> </div> 
    </div> 
</script> 
Running.... 

답변

0

를 사용하여 다음 코드를

var DerivedView = BaseView.extend({ 
    render : function() { 
     rendered = $.tmpl($(this.template || this.options.template).template(), this.model.toJSON()); 
     this.$el.html(rendered); 
    } 
}); 

그리고 다음과 같이 호출 :

나는 희망
var derivedView = new DerivedView({model: mdl, el:$('body'), template: "#someTemplate"}); 
derivedView.render(); 

, 코드가 당신을 도울 것입니다!

관련 문제