是否可以编译AngularJS应用程序以删除ng- *指令(如(ng-click))并生成纯HTML(如Angular 2+)?如果我们使用chrome开发工具检查Angular 2应用程序,它不会显示诸如onClick
之类的事件处理程序。但是AngularJS显示ng-click
,ng-for
等。
答案 0 :(得分:0)
简短答案:
否
详细答案:
我不会讲一个,因为您的问题涉及许多已经在其他地方解释过的(复杂)主题,并且可能比我能做的更好,但是在简短的解释中,我将提供一些有用的链接。
中等答案:
您无法要求什么,因为AngularJS使用不同的方法进行更改检测和事件绑定。
关于AngularJS / Angular的一件很酷的事情是它能够自动检测更改并执行更新。为了使之成为可能,Angular(JS)必须注意情况是否有所变化。
以带有click事件的示例为例,AngularJS使用基于事件的指令来注意click事件,而Angular使用从模板视图到组件的单向绑定执行event binding。 Angular有这种可能性,因为它使用Zones to get aware of changes。因此,它不需要像AngularJS一样的指令。
这说明了为什么您在HTML元素上看不到事件处理程序的原因,因为Angular直接设置了事件绑定。如果您在Chrome中检查事件监听器标签,则可以验证该事件是否由Zone.js处理:
指向该主题的其他有用链接: