angular中使用ng-include后controller中$watch失去作用
有的时候为了实现代码复用,我们会使用ng-include
复用部分代码。
问题简化
about.js
|
|
about.html
123<p>This is the about view.</p><div ng-include="'views/include.html'"></div>{{num}}
include.html
|
|
如果我们运行这段代码就会发现一个问题,当我们改变num
的值的时候控制台并没有打印num
的值。
原因
这是因为我们使用ng-include
的时候会会创建一个child scope
。然后两个scope
的作用域是相互隔离的,所以include.html
中的ng-model
绑定的是自己的scope
, 所以about.js
中的num
不会发生改变。
解决办法
将include.html
做如下修改
|
|