![](/img/trans.png)
[英]the variable which is define inside ng-init not reflecting changes through out the view in angular js
[英]Angular js , $scope changes is not reflecting in view
視圖部分
<div class="col-sm-8" data-ng-init="init_enable_disable()">
<select class="form-control" style="margin-top: 5px;" data-ng-model="schedule.scheduleType" data-ng-change="enable_disableDiv(schedule.scheduleType);">
<option ng-selected="{{type == defaultSelectedType}}" data-ng-repeat="type in schduleType">{{type}}
</option>
</select>
</div>
ng-repeat模型
$scope.schduleType = ['Recurring', 'One time'];
我稍后會更新ng-model,但無法反映
if (editRecord.freq_type === 1)
{
alert("one time");
$scope.schedule.scheduleType = 'One time';
}
怎么了請建議我。
當您使用ng-model
並從控制器分配值時,無需使用DOM中的ng-selected
。 最好從控制器初始化。
可以嘗試一下
在您的控制器中:
$scope.schduleType = ['Recurring', 'One time'];
$scope.schedule = {};
$scope.schedule.scheduleType = $scope.schduleType[0]; // initial select
$scope.enable_disableDiv = function(){
console.log($scope.schedule.scheduleType);
}
在HTML中:
<select class="form-control" data-ng-model="schedule.scheduleType" data-ng-change="enable_disableDiv(schedule.scheduleType)">
<option ng-repeat="type in schduleType" value="{{type}}">{{type}}</option>
</select>
注意:如果要從控制器更改選項值,則應使用$scope.schduleType
而不是someValue
進行引用,因為從控制器分配值時不要引用schduleType
。 如要根據條件進行更改,然后使用如:
if(editRecord.freq_type === 1) {
$scope.schedule.scheduleType = $scope.schduleType[1];// not "one Time"
}
你可以嘗試
`$scope.$applyAsync(function(){ $scope.schedule.scheduleType = 'One time'; })`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.