这就是 jqLite的 工作方式。如果要评估模板中的脚本,请在AngularJS之前添加 jQuery
。如果包含jQuery,则将评估脚本。尝试删除jQuery,您会看到最初观察到的行为。
更新 :由于有人要求在评论中进行详细说明,因此这里是:
当路由匹配时,
ngView使用jqLite的(或jQuery的,如果已加载)
html()方法设置元素的内容(
ngView声明为on)。换句话说,
ngView.link()执行以下操作:
$element.html(template)
因此,归结为如何
html()在jqLite和jQuery中实现。jqLite使用native
innerHTML属性,该属性仅设置内容,但不评估脚本。另一方面,jQuery解析出所有脚本标签并执行它们(通过在页面上构造和添加脚本DOM元素)。



