【问题标题】:Issues implementing chosen select dropdowns within underscore.js template script在 underscore.js 模板脚本中实现选择的下拉菜单的问题
【发布时间】:2012-10-16 19:53:24
【问题描述】:

在我的代码中,如果我删除 <script type="text/html" class="template"> </script> 来自包含一些 <select> 标签的 div 部分周围的标签,然后 selected.jquery.js 样式生效。

如果我留下<script> 标签,那么它不会正确修改选择下拉菜单,而是将其修改为某种操作链接。

这是jsfiddle

如果您删除模板的标签以及下划线和 jquery 调用,下拉菜单将正确加载。

这是一张显示两种方式的图片:

我希望它看起来与底部选项相似,同时仍使用下划线的模板。这可能吗?

【问题讨论】:

    标签: jquery css select underscore.js jquery-chosen


    【解决方案1】:

    当你说_.template(some_html) 时,你得到的是一个函数,而不是 HTML:

    模板 _.template(templateString, [data], [settings])

    将 JavaScript 模板编译为可进行渲染评估的函数。
    [...]
    如果您正在编写一次性的,您可以将 data 对象作为第二个参数传递给模板,以便立即呈现,而不是返回 template 函数。 p>

    因此,您正试图向您的页面添加一个功能,就好像它是一大块 HTML 一样,但效果并不好。此外,您试图将模板放入文档的 <head> 区域,这不是一个好主意。

    您需要编译模板,然后运行返回的函数以获取 HTML:

    var template = _.template(some_html);
    var html     = template(); // Or template(data) if you have data.
    

    如果您有模板的数据,您可以一次性完成:

    var html = _.template(some_html, data);
    

    演示:http://jsfiddle.net/ambiguous/3ezqV/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      相关资源
      最近更新 更多