CNode

如何使用模板引擎渲染普通html文件,例如配置了handlebars,去render angular页面?

问答
Llanglang1234发布于10 年前最后回复9 年前5 回复6211 浏览0 收藏

有这样一个需求,采用express+handlebars,大部分页面都是采用handlebars的语法来写的,只是有一部分旧有代码,是angularjs写的。

如果用handlebars引擎去render("angular.html"),那么会报错,因为angular.html页面里有双括号,例如{{}}这种,handlebars引擎在解析这里时会报错。

想问一下,能不能有什么方法,可以让handlebars页面和angular页面共存呢?

我自己倒是发现了一种解决方式,就是在angular页面里的{{}}之前,加一个反斜杠,这样handlears引擎就不会解释这个双括号,可是总觉得这样要改原有页面代码,不是太好。

查看回复

回复 (5)

M
mikeliyanwei#1·9 年前

我也遇到这个问题了。

N
ncuzp#2·10 年前

现在的主要问题是两个库的模板指令冲突了,所以问题变成如何使他们不冲突! 是否考虑可以改掉angular 或者 handlebars 对 {{}} 的解析方式 或者说用别的方式解析? 或者可以控制angular 与 handlebars 的执行顺序? 例如 是不是可以先让angular执行完得到解析后的数据再render?

L
langlang1234#3·10 年前

是的,主要就是冲突问题。 我之前在想,express能不能支持两个模板引擎的,render时根据不同的需要用不同的引擎。但是应该做不到。 那只能修改angular页面的代码了,每对括号前加个反斜杠,让handlebars不去解析

K
keenwon#4·10 年前

我觉得可以在handlebars之前加一个处理angular的中间件,通过后缀名目录之类的区分,不是angular文件直接next,交给handlebars处理

K
klesh#5·10 年前

把angular.html放在public文件夹

来自酷炫的 CNodeMD

参与回复
登录后即可参与回复。登录