2012-10-10 2 views
1

현재 슬림 프레임 워크를 사용하여 브라우저에 HTML 템플릿을 제공하고 있습니다. 뷰가로드 된 후 애플리케이션은 RESTful API에서 일부 정보를 검색하고 handlebars.js를 사용하여 DOM의 다양한 측면을 채 웁니다.PHP와 자바 스크립트 템플릿으로 작업하기

html 템플릿이 제공 될 때 아주 기본적인 템플릿 요구 사항을 처리하기 위해 mustache.php 또는 twig와 같은 PHP 템플릿 시스템을 사용하고 싶습니다. 그러나 handlebars.js는 API에서 검색 한 정보로 DOM을 채울 시간이되면 커다란 갈등을 겪고 있습니다. mustache.php와 twig와 동일한 구문을 사용합니다.

내가 지금 가지고있는 유일한 해결책은 위의 PHP 템플릿 솔루션 중 하나를 사용하는 대신 html 템플릿에서 str_replace()를 수행하는 것입니다.

PHP 템플릿 솔루션과 handlebars.js 중 하나를 충돌없이 사용할 수있는 방법이 있습니까?

답변

2

가장 빠른 방법은 서버 쪽 템플릿의 콧수염 구분 기호를 변경하는 것입니다. 이런 식으로 뭔가 :

{{=<% %>=}} 
<html> 
<head> 
    <title><% title %></title> 
    <script type="text/x-handlebars-template" id="mytemplate"> 
    {{# stuff }}{{ otherstuff }}{{/ stuff }} 
    </script> 
</head> 
<body> 
    <h1><% title %></h1> 
</body> 
</html> 

<% 유형 구분 기호가 Mustache.php에 의해 사용되며, {{ 유형 구분 기호가 그들이 Handlebars.js 사용하기 위해 주위에있을 것입니다 보장, 무시됩니다 그런 식으로.

<html> 
<head> 
    <title>{{ title }}</title> 
    {{=<% %>=}} 
    <script type="text/template" id="mytemplate"> 
    {{# stuff }}{{ otherstuff }}{{/ stuff }} 
    </script> 
    <%={{ }}=%> 
</head> 
<body> 
    <h1>{{ title }}</h1> 
</body> 
</html> 

이 부분으로 핸들 템플릿을 이동하는 경우 : 당신이 일반 구분에 대한 콧수염을 계속 사용하려는 경우

당신은 또한 당신의 핸들 바 템플릿 주위에 즉시 구분 기호를 변경할 수 있습니다

{{=<% %>=}} 
<script type="text/template" id="mytemplate"> 
    {{# stuff }}{{ otherstuff }}{{/ stuff }} 
</script> 

... 구분 기호 변경은 해당 부분 내부에만 적용됩니다. 그러면 다음 작업을 수행 할 수 있습니다.

<html> 
<head> 
    <title>{{ title }}</title> 
    {{> handlebars_templates }} 
</head> 
<body> 
    <h1>{{ title }}</h1> 
</body> 
</html> 

이 경로는 가장 유지 관리가 잘되는 것이 좋습니다.

관련 문제