Handlebars.JS
과 관련된 문제로 {{anything}}
을 대체하지 않아서 상당히 문제가 있습니다. Handlebars.JS가 컨텍스트로 태그를 대체하지 않습니다.
function compileTemplate(name){
return Handlebars.compile($('#'+name+'-template').html());
}
:
<script id="team-li-template" type="text/x-handlebars-template">
<li team-id="{{id}}"><a>{{name}}</a></li>
</script>
올바른 정보 :
Soccer.Teams.Li = compileTemplate('team-li');
Soccer.Router = Backbone.Router.extend({
routes: {
"": "index"
},
index: function(){
Soccer.container.html(compileTemplate('main'));
var teams = new Soccer.Teams.View();
var container = Soccer.container.find('.sub-content');
container.html(teams.render().$el.html());
var teamsList = container.find('#teams-list');
teams.teams.forEach(function(team){
teamsList.append(Soccer.Teams.Li(team.toJSON()));
}, this);
Soccer.page.trigger('pagecreate');
}
});
그리고 #team-li-template
다음입니다 확실히 전달되고 있습니다. console.log
.toJSON
올바른 정보가 들어 있지만 아무것도 대체되지 않고 태그가 아무 것도 표시되지 않습니다.
아이디어가 있으십니까?
감사합니다.
업데이트 :
이 실제 응용 프로그램은 54.235.201.41입니다(죄송합니다, 저를시키지 않을 것임을 : 이상하게도 나는 JSFiddle 내 모든 코드를 복사하고 괜찮 았는데
링크로 추가).
코드를 로컬 파일로 저장하고 실행해도 문제가 없습니다.
사용자 이름 : [email protected] 및 비밀번호 테스트. 실제 앱에 문제가있는 것을 확인 하시겠습니까? JSFiddle/local에서 작동하고 내 앱에서 작동하지 않는 이유는 무엇입니까?
'.toJSON()'을 포함시키지 않으셨습니까? 또는 일부 값을 하드 코딩하여 작동하는지 확인하십시오. teamsList.append (Soccer.Teams.Li ({id : 1233, name : "asdfasdf"})))); – CheapSteaks
@CheapSteaks 아무 쓸모가 없어 보았습니다 ... : ( – MatthewKremer
@MatthewKremer Handlebars 코드 자체로 문제가없는 것 같습니다. http://jsfiddle.net/W8Xxf/ – CheapSteaks