2013-07-23 2 views
0

내 양식에서 Angular는 변경 사항에 대한 선택 상자를보고 선택한 데이터를 사용하여 나중의 선택 상자에 데이터를로드합니다. 이것은 관측자의 초기화를 제외하고는 훌륭하게 작동합니다. Angular는 기존 데이터를 선택한 옵션 (서버가 제공함)으로 유지하지 않고 즉시 새 데이터를로드합니다. 초기화시 각도가 선택 상자를 변경하지 못하도록 함

<form action="join" method="post" ng-controller="JoinController"> 
... 

<select name="state" ng-model="state"> 
    <option value="">Select...</option> 
    ...data provided on initial load... 
</select> 

<select name="institution_id" ng-model="institutionId" ng-options="option.id as option.name for option in institutionOptions"> 
    <option value="">{{ defaultInstitutionOption }}</option> 
    ...data provided on initial load... 
</select> 

... 
</form> 

그리고 각 컨트롤러

...

app.controller('JoinController', function($scope, $http) { 
    $scope.defaultInstitutionOption = "Select state..."; 

    $scope.$watch('state', function() { 
     $scope.defaultInstitutionOption = "Loading institutions..."; 

     $http.get('institutions?state=' + encodeURIComponent($scope.state)).success(function(institutions) { 
      $scope.institutionOptions = institutions; 
      $scope.defaultInstitutionOption = "Select..."; 
     }); 
    }, true); 
} 

답변

0

$watch 2 개 인자 newValueoldValue 걸립니다. 첫 번째 요청의 경우 oldValue은 null이거나 정의되지 않습니다. 같은 것을 확인하십시오

$scope.$watch('state', function(newValue,oldValue) { 
//Check logic based on newValue and oldValue 
} 
관련 문제