在頁面使用數據綁定,並且監聽的時候發現了$scope.$watch並不生效,代碼如下:
<div class="col-sm-2" ng-if="!Show">
<label for="Tdg_Mode">提貨方式:</label>
<select ng-model="Tdg_Mode" ng-options="i.Value_Data as i.Value_Desc for i in dataTdg_Mode" id="Tdg_Mode" class="RoleTypeclass form-control" >
<option value="">請選擇提貨方式</option>
</select>
</div>
將代碼改成如下後可以使用:
<div class="col-sm-2" ng-show="!Show">
<label for="Tdg_Mode">提貨方式:</label>
<select ng-model="Tdg_Mode" ng-options="i.Value_Data as i.Value_Desc for i in dataTdg_Mode" id="Tdg_Mode" class="RoleTypeclass form-control" >
<option value="">請選擇提貨方式</option>
</select>
</div>
總結:
因爲使用了ng-if數據綁定不上,後面改用ng-show之後可以正常的監聽到數據的變化。ng-show是通過CSS顯示或隱藏DOM節點,而ng-if是真正生成或移除DOM節點。
在生成新的DOM節點之後,並生成了一個新的作用域,他們在不同的作用域中當然監聽不到數據的變化。