如何使用模板引擎渲染普通html文件,例如配置了handlebars,去render angular页面?
发布于 2 个月前 作者 langlang1234 310 次浏览 来自 问答

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

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

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

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

4 回复

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

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

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

把angular.html放在public文件夹

来自酷炫的 CNodeMD

回到顶部