2016-04-03 3 views
0

The 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> 

нг-повторить модель

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

Я обновляя нг-модель на более позднее время, но это не делает отражаются в учете

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

Что пойдет не так, пожалуйста, предложите мне.

ответ

1

Когда вы используете ng-model и присвоенное значение от контроллера нет необходимости нет необходимости использовать ng-selected в DOM. и лучше инициализировать контроллер.

Может попробовать это

в контроллере:

$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> 

NB: Если вы хотите изменить значение параметра с контроллера, то вы должны использовать $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'; 
 
})`