问题标签 [client-side-templating]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
32189 浏览

handlebars.js - handlebars.js 是否将换行符替换为
?

尝试使用 handlebars.js 进行模板化,但该库似乎忽略了换行符。

处理换行符的正确方法是什么?是否应该在模板操作之后手动替换它们?

0 投票
1 回答
1098 浏览

mustache - 客户端模板的优点是什么(类似小胡子)

为了避免编写为动态页面手动生成 HTML 的 JavaScript 代码(不仅丑陋,而且根本不 DRY),并且考虑到简单和优雅(相对于性能),使用基于字符串的优点是什么客户端上的模板,例如 Mustache.js 或 Handlebars.js,分别检索 json 数据和模板,而不是使用检索服务器端呈现的 html 片段的 REST API?

我的印象是客户端模板是在动态页面上保持简单的最佳方法,但是在使用它之后我发现维护这样的页面有点复杂,它的主要优点是更好的性能和带宽使用,这通常不是我的主要目标。

0 投票
2 回答
513 浏览

javascript - 使用 ajax 请求在客户端 javascript 模板中填充图像源 url

我正在尝试使用客户端模板库dust.js。我想使用使用 Ajax(Json 格式)从服务器检索到的值来填充“img”标签(代码中的 {profile.picUrl})的“src”属性。

问题是在进行 Ajax 调用之前,浏览器会尝试加载图像,从而导致 HTTP 404 响应(“src”包含模板占位符)。有没有办法在不向服务器发出 404 请求的情况下做到这一点?

这是一个复制问题的示例:

PS:大括号({profile.user})中的名称用于在dust.js语法中填充模板中的值

0 投票
2 回答
1425 浏览

javascript - 预编译 javascript 模板

看完Mustache.js 和 Handlebars.js 有什么区别?我被一个问题迷惑了:

javascript模板的预编译是什么意思?

以前我使用的是一个简单的客户端缓存,它的工作原理是这样的:

这与我的技术有什么根本不同?

0 投票
1 回答
639 浏览

javascript - Handlebars - 获取块的不变内容

我想获得车把中块的未更改/未渲染/任何内容。所以,假设我有以下内容:

如果我有一个名为“模板”的助手,我希望能够引用原始内容块 - 而不是“编译”模板块。所以,我希望能够在<tr><td>{{name}}</td><td>{{price}}</td></tr>没有{{name}}{{price}}被“渲染”的情况下获得字符串。

现在,看起来我唯一可以访问的是“this.options.fn”,它似乎只是一个预编译的模板片段。

有没有办法做到这一点?到目前为止,我所看到的只是对编译内容的引用。

注意 - 如果甚至可以说“我真的想把它打印出来”,那也可以。例如,Smarty 中的 {literal},它将忽略所有内容,直到 {/literal}。

0 投票
2 回答
7850 浏览

node.js - 如何使用dustjs-linkedin 作为客户端模板?

我得到了服务器端和客户端模板的想法,但是dust.js 让我有点困惑。

为了使用dust.js进行客户端模板,您需要三个步骤:

  1. 遵守模板
  2. 加载模板
  3. 渲染模板

对?

但是模板从何而来?我看到了两种不同的方法:

...它们都在 DOM 中。哪个是对的?

我还注意到您可以通过 ajax 加载模板,因此模板不会在 DOM 中看到,但我不知道该怎么做。

另外,我目前正在使用玉作为快速视图引擎。是否需要切换到dust.js?有什么好处?

0 投票
1 回答
1339 浏览

html - 使用客户端模板的脚本标签,为什么我不能通过 src 属性加载?

这工作正常(我能够通过 id 访问 dom 中的片段)

但是如果我将模板放在外部资源中,我在 dom 中找不到它:

chrome 给了我一个我认为无关紧要的警告:

我正在从文件系统和/或从python -m SimpleHTTPServer. 有任何想法吗?

0 投票
0 回答
13 浏览

http - 用于为带有标头的资产提供服务的开发服务器

我正在尝试提供可以像这样使用的模板资产:

这意味着我需要在与脚本类型一致的资产上设置标题。

有没有办法使用文件系统之外的某种开发应用服务器来做到这一点?我正在尝试构建一个工作流程,让我们的前端人员无需运行我们真正的后端即可工作。

python -m SimpleHTTPServer除了让我为某些扩展配置标头之外,其他简单的东西会很棒。自己编写代码会很简单,但宁愿使用现有的解决方案,因为可能会有更多无法预料的问题。

0 投票
1 回答
1019 浏览

javascript - django后端的客户端vs服务器端vs混合模板

我想知道是否值得转换为更通用的模板引擎,例如 mustache 或 handlebars 而不是 Django 模板。我自己看到的选项是:

  1. 使用 Django 模板(仅限服务器端)
  2. 完全转换为 Mustache/Handlebars 等
  3. 使用混合方法:Mustache/Handlebars 以及在适用的情况下使用 Django 模板(最丑的选项?)

尽管转换为像系统这样的 Mustache/Handlebars 为我在客户端和服务器端使用相同模板带来了灵活性,但我确实失去了 Django 模板系统提供的某些优势(例如模板继承)。

我知道有支持和反对客户端模板以及服务器端模板的激烈争论。一些人认为在繁忙的服务器上渲染 HTML 可能会使其变慢,而另一些人则认为在浏览器上从 JSON 渲染 HTML 可能会使客户端变慢。

我也知道为非 javascript 启用的设备使用服务器端 html 渲染的论点,但现在大多数设备都支持 javascript。

从 Django 模板系统转换为 Mustache/Handlebars 等是否有真实而明确的原因?

谢谢。

0 投票
6 回答
1061 浏览

clojure - ClojureScript 中的模板

我想使用 ClojureScript 制作“单页”风格的网络应用程序。为此,我需要一个客户端模板系统。有人对我应该研究哪些 ClojureScript 模板系统有任何经验和/或建议吗?谢谢。