【问题标题】:jQuery: Templates. Must be contained in script block?jQuery:模板。必须包含在脚本块中?
【发布时间】:2010-10-21 23:10:55
【问题描述】:

作为一名 JS 开发人员,我始终将设计层与业务层分开。这意味着,HTML 始终是单独的,CSS 和 JavaScript 文件是外部的和包含的。

现在,对于 jQuery 模板,声明的模板显然必须存在于页面的脚本块中。您到底应该如何将所有业务分开?我不想要凌乱的 HTML。我想要干净的 HTML,因为它是这样设计的......

是否有可靠的、经过验证的方法可以做到这一点?

【问题讨论】:

    标签: javascript jquery templates


    【解决方案1】:

    如果需要,您可以致电$.templ(yourTemplateString, data)。这将返回构建的元素,然后您可以使用“附加”或其他方式将其粘贴到文档中。

    我同意你的观点,将模板作为<script> 标签对每个人来说都不是一个超级酷的主意。

    【讨论】:

    • 我决定编写自己的函数来返回“模板”
    • 我认为这是个好主意 - 事实上,您可以在构建时将它们打包成一个单独的静态内容文件,类似于一个大的 JSON 对象或类似的东西。
    【解决方案2】:

    有一些牺牲,但看起来更易于维护和清洁:

    原文:

    for(var i=0; i<client.name.length; i++) {
        clRec += "<li><a href='clients/"+client.id[i]+"'>" + client.name[i] + "</a></li>";
    }
    

    模板

    <script id="clientTemplate" type="text/html">
        <li><a href="clients/${id}">${name}</a></li>
    </script>
    

    来自http://blog.reybango.com/2010/07/09/not-using-jquery-javascript-templates-youre-really-missing-out/的代码

    【讨论】:

    • 是的,它“看起来”更好......但我不是在谈论短代码......我在谈论相关内容的完全分离。我不应该编辑我的 .htm 文件来更改我的 javascript。
    【解决方案3】:

    您可以对use jQuery Templates definitions stored in external files 使用不同的$.tmpl() 语法和$.ajax()。

    【讨论】:

      【解决方案4】:

      我想如果您希望模板化您的应用程序,请尝试使用 jQuery 模板。但我开始意识到,就像许多框架一样,最终会使代码更加复杂。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-05
        • 1970-01-01
        • 1970-01-01
        • 2021-09-17
        • 2020-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多