2 回答

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 框架或其摘要循環永遠不會更新該屬性。

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>
添加回答
舉報