首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery和HTML5 5的模板标签

jquery和HTML5 5的模板标签
EN

Stack Overflow用户
提问于 2014-11-27 17:06:42
回答 1查看 1.8K关注 0票数 5

我想要使用underscorejs的模板功能。看来HTML5 5的<template>标签非常适合这一点,但是有一个障碍.underscorejs内插标记(<%%> get HTML -转义),因此模板标记中的HTML如下所示:

代码语言:javascript
复制
$('template.new-email').html()

=>

代码语言:javascript
复制
"
  <div class="email">
    <div class="timestamp">
      &lt;%= received %&gt;
    </div>
    <div class="from">
      &lt;%= from %&gt;
    </div>
    <div class="title">
      &lt;%= title %&gt;
    </div>
    <div class="message">
      &lt;%= message %&gt;
    </div>
  </div>
"

那太糟糕了。

现在,事实证明,如果我使用一个带有虚拟类型的脚本标记,比如“x-下划线-模板”,那么它看起来很棒:

代码语言:javascript
复制
$('.new-email').html()

=>

代码语言:javascript
复制
"
  <div class="email">
    <div class="timestamp">
      <%= received %>
    </div>
    <div class="from">
      <%= from %>
    </div>
    <div class="title">
      <%= title %>
    </div>
    <div class="message">
      <%= message %>
    </div>
  </div>
"

所以我的问题是--我能用模板标签吗?我如何才能得到我需要的字符,在一个字符串,以便我可以传递他们,以下划线的模板系统?

注意:由于我现在使用的服务器是一个hapijs /节点服务器,它使用工具栏作为服务器端的模板系统,所以不能只使用{{和}。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-28 00:06:22

我还喜欢使用模板标记的想法,并试图使下划线模板在html5模板元素中以各种方式工作。不幸的是,模板元素具体地意味着一个html模板,并且内容将被转换成一个文档片段,这不适合于许多有效的下划线模板,即使它们稍后将呈现为有效的html。

因此,我建议的唯一用法是,您可以将脚本元素组织在模板元素中,如下所示:

代码语言:javascript
复制
<template class="underscore-templates">
 <script id="new-email">
   <div class="email">
     <div class="timestamp">
       <%= received %>
     </div>
     <div class="from">
       <%= from %>
     </div>
     <div class="title">
       <%= title %>
     </div>
     <div class="message">
        <%= message %>
     </div>
   </div>
 </script>
 <script id="other">
 </script>
</template>

然后他们被隔离起来,安全地做以下事情:

代码语言:javascript
复制
var templates = $('.underscore-templates').prop('content');
_.template($(templates).children('#new-email').html(), {...});

使用template元素作为作用域,以防止id冲突的正常问题,并将这些模板作为脚本执行。

(不过,这将仅限于现代浏览器,而不需要对如何(或者如果)检索旧浏览器中的模板元素内容并将其呈现为可搜索的片段进行相当深入的调查。)

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

https://stackoverflow.com/questions/27175852

复制
相关文章

相似问题

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