2013-06-18 3 views
0

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입니다

http://jsfiddle.net/vcrhh/1/

(죄송합니다, 저를시키지 않을 것임을 : 이상하게도 나는 JSFiddle 내 모든 코드를 복사하고 괜찮 았는데

링크로 추가).

코드를 로컬 파일로 저장하고 실행해도 문제가 없습니다.

사용자 이름 : [email protected] 및 비밀번호 테스트. 실제 앱에 문제가있는 것을 확인 하시겠습니까? JSFiddle/local에서 작동하고 내 앱에서 작동하지 않는 이유는 무엇입니까?

+1

'.toJSON()'을 포함시키지 않으셨습니까? 또는 일부 값을 하드 코딩하여 작동하는지 확인하십시오. teamsList.append (Soccer.Teams.Li ({id : 1233, name : "asdfasdf"})))); – CheapSteaks

+0

@CheapSteaks 아무 쓸모가 없어 보았습니다 ... : ( – MatthewKremer

+0

@MatthewKremer Handlebars 코드 자체로 문제가없는 것 같습니다. http://jsfiddle.net/W8Xxf/ – CheapSteaks

답변

1

핸들 막대와 백본이 잘 보이고 바이올린이 실행되므로 테스트 환경에 문제가있는 것입니다. 서버의 페이지 소스를 보면 다음과 같이 표시됩니다.

<script id="team-li-template" type="text/x-handlebars-template"> 
    <li team-id=""><a></a></li> 
</script> 

중괄호가 눈에 띄지 않습니다. 나는 서버 측이 당신의 버팀대를 먹고 있다고 생각할 것입니다. Django를 사용하고 있다고해서 Django의 템플릿이 문제가 될 수 있다고 말합니다.

관련 문제