处理此问题的最快方法是更改服务器端模板中的 Mustache 分隔符。像这样的东西:
{{=<% %>=}}
<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 可以使用它们。
如果您想继续使用 Mustaches 作为常规分隔符,您还可以立即更改 Handlebars 模板周围的分隔符:
<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>
我建议走这条路线,因为它是最易于维护的。