视图部分
<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>
N.B:如果要更改控制器的选项值,则应使用
$scope.schduleType
而不是someValue
进行引用,因为从控制器分配值时不要引用schduleType
。如要根据条件进行更改,然后使用如:if(editRecord.freq_type === 1) {
$scope.schedule.scheduleType = $scope.schduleType[1];// not "one Time"
}
关于javascript - Angular js,$ scope的更改未反射(reflect)在 View 中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36381975/