2016-04-03 50 views
0

反映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重复模式

$scope.schduleType = ['Recurring', 'One time']; 

我更新在以后的NG-模型,但它不反映在视图

if (editRecord.freq_type === 1) 
{ 
    alert("one time"); 
    $scope.schedule.scheduleType = 'One time'; 
} 

什么问题请建议我。

回答

1

当您使用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" 
} 
0

你可以尝试

`$scope.$applyAsync(function(){ 
 
    $scope.schedule.scheduleType = 'One time'; 
 
})`