【问题标题】:Literal partial with Mustache Php / Js?字面部分带有 Mustache Php / Js?
【发布时间】:2016-03-20 23:34:17
【问题描述】:

我使用Mustache 在 PHP 端和 Javascript 端拥有相同的模板,如下所示:

{{> myTemplate}}

<script id="myTemplate" type="x-tmpl-mustache">
    {{> myTemplate}}
</script>

问题:在页面加载时,包含在两个“脚本”标签之间的部分“myTemplate”被我的 PHP 中的数据更改。为了在我的 javascript 中使用它,我需要它保持不变。

请问有什么办法吗?

编辑:

我找到了一个解决方案:Chevron.js(一个 jQuery 插件)除了 Mustache。我做了这样的事情:

html:

<head>
    <link href="templates/myTemplate.mustache" rel="template" id="myTemplate" />
</head>

javascript:

$("#myTemplate").Chevron('render', data, function (html) {
    // do something with 'html'
});

【问题讨论】:

  • 是的 mustache 使用常量模板分隔符,我建议像 Contemplate(作者)这样的东西,它支持自定义分隔符(因此能够在服务器端模板中传递客户端模板)等等

标签: javascript php mustache template-engine


【解决方案1】:

使用Contemplate,您可以执行以下操作:

<% %>
<!-- server-side template -->
<% $server_data %>
<script id="myTemplate" type="x-contemplate">{% %}
     <!-- client-side template -->    
      {% $client_data %}
</script>

每个模板都以模块化的方式定义了自己的分隔符,因此任何模板组合和嵌套,例如有一个服务器端模板包括一个客户端模板,都会得到最佳处理(参见相关问题, https://github.com/foo123/Contemplate/issues/5)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-22
    • 2013-01-30
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多