问题标签 [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 投票
2 回答
2405 浏览

javascript - 什么时候使用后端模板引擎,什么时候使用前端模板引擎?

大多数传统的 MVC 框架都包含自己的模板解决方案(Jinja2、Mako 等)。如果决定使用其中一种新的 ui 框架,例如 Angular 或 Backbone,它们似乎鼓励使用前端模板解决方案。

性能上有区别吗?无论哪种方式都有哪些优点和缺点?在使用这些 js 模板解决方案时,ie 或其他浏览器是否存在问题?

0 投票
0 回答
193 浏览

javascript - 客户端有多少种方法来维护车把模板

在我的应用程序中,我们从客户端模板化车把(我们不是从服务器端模板化)。所以到目前为止,我们使用以下方式html使用标签维护文件内部的所有模板化。script

每当我想要模板时,我只是像以下方式一样编译并将编译结果附加到 dom

工作正常,但我们正在考虑将所有车把模板分离到另一个文件中。因此很容易维护 html 文件。

关于这一点,我想将所有模板移动到.js文件中的文件中,只是创建全局变量,它是以下方式的对象。

每当我想要时,我都可以通过以下方式访问模板代码。

这种方式也可以正常工作,我想知道这是不是好方法。如果不是好方法,shell如何做到这一点。

我听说过.hbs文件,基本上它包含pre-compiler模板。如果我从服务器端模板,但在我的情况下模板发生在客户端本身,它很有用。

任何人都可以建议我,哪种方式更好。

0 投票
1 回答
2158 浏览

javascript - client side server side templating nodejs

I am working on a webapp using nodejs. I was originally going to just server side hbs template, but then I found out about backbone for client side templating. I found out it can fetch data from server then display it using hbs template, instead of server side generate entire html page and send. But then I also read somewhere people suggest that it is not good practice to have many ajax calls in client side to get data and display for one webpage, it would have so many request to server, and the page would appear to be slow. so I am wondering is there general rule how many requests can be made for one page? Should I use classic one request one respond? or should the respond be some client side javascript which then fetch data from server and display them ?

Thanks

0 投票
1 回答
496 浏览

javascript - 预编译模板的 Dust.js 客户端渲染问题

我正在尝试使用预编译的灰尘模板测试一个简单的客户端渲染,但是当我尝试渲染时,灰尘抱怨它找不到我的模板:

我的页面如下所示:

还有我的模板文件(basicName.tl):

编译为此(basicName.js):

我已经使用客户端模板编译测试了相同的模板/有效负载/html,一切正常。为了能够使用预编译的模板,我缺少什么?

0 投票
1 回答
490 浏览

angularjs - AngularJS 中是否有类似 Facelets 的功能,其中视图定义了模板及其可替换部分?

如果您了解 Facelets,那么它就不像简单的 JSP 包含或 Angular ng-include,其中模板本身定义了模板中应包含的内容。

在 Facelets 中,模板只定义了它的哪些部分是动态的或可替换的,视图可以使用它并告诉模板的那些可替换部分中应该包含哪些内容。在 Facelets 中,一个页面可以在一个文件中提供模板的所有可替换部分

面片示例:

模板:template.xhtml:

查看:somepage.xhtml

这与常规包含模板不同,其中模板不允许页面定义模板的内容,除非它在模板中的确切使用位置。

ngInclude 示例

查看:main.html

问题

ng-include中,somepage.html无法定义或提供模板的其他可替换部分。它必须将模板的所有部分分成多个文件并对其进行硬编码。

我知道 Facelets 在服务器端工作,而 ng-include 在浏览器端工作,但重要的是概念。尽可能地,我们希望在 AngularJS 中应用同样的概念。顺便说一句,我们正在使用 Play Framework,这意味着我们不能使用 Facelets。

0 投票
0 回答
93 浏览

json - 不知道 JSON 结构的 Mustache 模板

我有这样的json数据

问题是我想识别标签名称和值并在 mustache 模板中呈现,但我不知道我的 Web 服务响应中的 JSON 结构会是什么样子。

我知道它可以通过 json 解析来完成

对于我不确定结构的数据,我如何在 mustache 中进行模板化?提前致谢

0 投票
1 回答
143 浏览

javascript - 当我通过ID直接访问它时,不会触发点击jquery

我正在使用dust.js(由于缺乏良好的文档而进行了多次谷歌搜索)。最后,我能够动态创建超链接。现在我想为动态生成的超链接提供 onclick 功能。

下面是我准备好的文件。奇怪的是,当我点击生成的超链接时,我得到的是 Apple,而不是 Orange。我很想知道为什么第二个 onclick 不起作用?不同之处在于,在第一个中,我使用文档来引用我的 id('#linked')。在第二个中,我直接访问 id。

0 投票
1 回答
737 浏览

javascript - Handlebars JS(或 EJS)模板:将列表划分为类别

我想使用 Handlebars JS 基于对象数组创建一个无序列表。

对象采用以下形式:

目前我有一个带有 each 函数的模板,它编译一个 UL,每个对象创建一个新的列表项,如下所示:

我想做的是找到根据类别划分列表的最简单方法,所以我最终可能会得到这样的结果......

如果我只能使用模板来做到这一点,那将是完美的,但如果需要,我也可以更改编译模板的 JS。如果这是一个更好的解决方案,我也愿意使用 EJS 模板。我已经想到了几个解决方案,但似乎都过于复杂并且效果不佳,但这肯定是一个相当普遍的问题,必须有好的解决方案。

非常感谢。

0 投票
2 回答
147 浏览

javascript - How do you register precompiled templates in Can.js

I'm using can.js and trying to precompile and load templates. I've taken my templates and precompiled them using can-compile and then loaded them in the resulting script file like so:

I don't think you register it through 'can.Mustache'? Does anyone know how you register pre-compiled templates with can.js?

Edit:

@Daff, When I use can.Mustache (I'm using can.jquery, btw) I find that (a) can.mustache is undefined, and (b)that if, for example, I type:

...that when it gets to the Mustache constructor:

...where it constructs a new Mustache (ln. 3), it passes the template name as the options arg. By the time you pass it to the scanner fn at the bottom 'options' which was the template name string now becomes an object with each property being one letter of that string...

0 投票
1 回答
1207 浏览

javascript - 未捕获的类型错误:无法读取未定义 Dustjs 的属性“substr”

我正在尝试学习javascript模板,即dustjs,但我遇到了我认为很基本​​的问题,即使谷歌也无法回答:)

这是最简单形式的代码

Javascript

在初始化期间模板完美呈现,但单击按钮会导致错误

未捕获的类型错误:无法读取未定义的属性“substr”

我究竟做错了什么?