Javascript 在应用程序代码上运行Google Closure编译器后更新AngularJS模板HTML
我的应用程序将变量分配给控制器中的$scope,如Javascript 在应用程序代码上运行Google Closure编译器后更新AngularJS模板HTML,javascript,node.js,angularjs,templates,google-closure-compiler,Javascript,Node.js,Angularjs,Templates,Google Closure Compiler,我的应用程序将变量分配给控制器中的$scope,如$scope.myVariable=123运行闭包编译器后,该代码将转换为$scope.a=123和$scope.b=123等等 我的html模板有类似于{{myVariable}}我需要将模板更新为{{a}}以匹配重命名属性myVariable的新名称 我知道我可以使用CC/**@expose*/注释,或者我可以执行类似于$scope['myVariable']=123的操作,以便CC不会重命名该特定属性。但是,我希望继续重命名变量属性 我看到
$scope.myVariable=123代码>运行闭包编译器后,该代码将转换为$scope.a=123代码>和$scope.b=123代码>等等
我的html模板有类似于{{myVariable}}
我需要将模板更新为{{a}}
以匹配重命名属性myVariable的新名称
我知道我可以使用CC/**@expose*/
注释,或者我可以执行类似于$scope['myVariable']=123
的操作,以便CC不会重命名该特定属性。但是,我希望继续重命名变量属性
我看到了两个选项:
编写一个使用CC中的_props_map.out的脚本,并编写一个sear替换我的HTML中的字符串的脚本
用javascript编写我的模板,这样CC也会处理我的模板,然后运行模板函数,从模板中吐出html
保持重命名变量并更新模板html的最佳方法是什么?我认为最好的方法是不要重命名变量。我不确定您到底想要实现什么,但一般来说,更改模板中的变量是没有意义的
您可以从一开始就在模板中包含{{a}
{{a}
在定义a
并具有某些值之前,不会打印任何内容
另一个选项是创建$scope.variables
对象,该对象将包含新变量,例如
{
a:123,
b:123
}
您可以在模板中将它们与{{{variables.a}
一起使用
这些选项中有哪一个适合你吗?我很好奇你是否能解决你的问题。我在模板中使用的所有控制器属性上都使用了/**@export*/
,这并不理想。