2 回答
![?](http://img1.sycdn.imooc.com/533e4d470001a00a02000200-100-100.jpg)
TA贡献1815条经验 获得超6个赞
对我来说,你的问题是这样的:
var a = false;
var b = a;
console.log(a,b);
var b = true;
console.log(a,b);
为什么a
不是true
第二次之后console.log
?不应该a
和b
一样吗?
不,因为a
和b
是独立的实体。
类似地,当代码值分配false
给$scope.props[0]
该指令的范围势必$scope.condition[0]
父范围。
$scope.toggle
并且$scope.condition[0]
是独立的实体。a
改变时不改变b
。
$scope.toogle
改变时不改变$scope.condition[0]
。
为什么摘要循环也不会更新切换?或者,当其分配的值发生变化时,摘要循环甚至会更新切换吗?
该ng-if="toggle"
指令在 上创建一个监视$scope.toggle
。它从不修改$scope.toggle
.
在props="condition"
结合上创建一个表$scope.props
的指令和更新的价值$scope.condition
父$scope
。因为它是双向绑定,所以它也会监视$scope.condition
父对象并更新$scope.props
指令的属性。
$scope.toggle
AngularJS 框架或其摘要循环永远不会更新该属性。
![?](http://img1.sycdn.imooc.com/5333a2320001acdd02000200-100-100.jpg)
TA贡献1818条经验 获得超3个赞
尝试删除replace: true指令配置中的 。
使用时replace: true,它将用内容替换指令标记,因此您将丢失ngIf指令,因为toggleis的初始值true。
<test ng-if="toggle" props="condition"></test>
将被替换为
<div>directive show</div>
所以结果将是
<div ng-app="myApp" ng-controller="Controller">
<div>directive show</div>
</div>
添加回答
举报