2010-12-14 44 views
2

对于我正在开发的项目,我在advanced mode中使用Google Closure Compiler。这是一个非常积极的JavaScript编译器,可以相当优化您的代码。然而,为了做到这一点,它需要看到整个图景。也就是说,如果我将一些东西分配给window.foo,然后只从JS访问window.foo,编译器无法看到它,它将不存在,因为它已经被更改为window.f或者甚至被删除全部一起。预编译为纯JavaScript的JavaScript模板语言

当JS镜头来临时,这会让事情变得复杂。由于它们是在运行时从字符串中加载的,因此它们倾向于引用不再存在的变量。通过为用于向模板提供值的对象使用引用赋值,可以稍微缓解这种情况。例如。 templateContext ['user']而不是templateContext.user。但是,这不允许我执行templateContext.user.username等等,所以它有些限制。

tl; dr:我需要一个JavaScript模板解决方案,可以将其预处理为纯JavaScript,并将其包含在.js文件中。

这样的事情是否存在?

+0

你提到谷歌Closure模板,我已经用它旁边的其他谷歌Closure工具,是高兴的。此外,与Google Closure完全无关,但在任何情况下,您可以通过字符串访问属性,如下所示:templateContext ['user'] ['username'] – 2010-12-14 20:33:49

+0

好点。我知道,但我一定忘记了。闭包编译器让我避免以这种方式访问​​对象,除非它是绝对必要的。 – defrex 2010-12-14 20:40:04

回答