首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php和javascript模板

使用php和javascript模板
EN

Stack Overflow用户
提问于 2012-10-11 02:34:17
回答 1查看 657关注 0票数 1

目前,我正在使用超薄框架来为浏览器提供html模板。加载视图后,应用程序从RESTful应用程序接口检索一些信息,并使用handlebars.js填充DOM的各个方面。

我想使用php模板系统,如mustache.php或twig来处理一些非常基本的模板需求,当html模板被提供时。然而,作为handlebars.js使用与mustache.php和twig相同的语法,在使用从API检索到的信息填充DOM时,我遇到了一些主要的冲突。

我目前唯一的解决方案是在html模板上做一个str_replace(),而不是使用上面的php模板解决方案之一。

有没有一种方法可以让我在使用php模板解决方案和handlebars.js时不会发生冲突?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-11 07:27:52

处理此问题的最快方法是更改服务器端模板中的Mustache分隔符。如下所示:

代码语言:javascript
复制
{{=<% %>=}}
<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可以使用它们。

如果您想继续使用八字胡作为常规分隔符,还可以在Handlebar模板周围立即更改分隔符:

代码语言:javascript
复制
<html>
<head>
  <title>{{ title }}</title>
  {{=<% %>=}}
  <script type="text/template" id="mytemplate">
    {{# stuff }}{{ otherstuff }}{{/ stuff }}
  </script>
  <%={{ }}=%>
</head>
<body>
  <h1>{{ title }}</h1>
</body>
</html>

如果将handlebars模板移动到局部:

代码语言:javascript
复制
{{=<% %>=}}
<script type="text/template" id="mytemplate">
  {{# stuff }}{{ otherstuff }}{{/ stuff }}
</script>

..。分隔符更改仅在分隔符内部应用。然后你可以这样做:

代码语言:javascript
复制
<html>
<head>
  <title>{{ title }}</title>
  {{> handlebars_templates }}
</head>
<body>
  <h1>{{ title }}</h1>
</body>
</html>

我建议你走这条路,因为它是最容易维护的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12826053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档