2015-02-03 1 views
0

각도 응용 프로그램에서 모델에 연결된 선택 요소가 있습니다. 모델 각도를 변경하면 어떤 이유로 값이 "?"인 추가 옵션이 추가됩니다. 내 포인트를 설명하기 위해 Here is a jsFiddle. 왜 이런 일이 일어나고 어떻게 피할 수 있습니까?선택 요소의 모델을 각도로 변경하면 값이 "?"인 옵션이 추가됩니다.

angular.module('angularApp', []); 
 

 
function testCtrl($scope, $timeout) 
 
{ 
 
    $scope.options = [1,2,3]; 
 
    $scope.initialSelectedValue = 2; 
 
    
 
    
 
    $timeout(function(){ 
 
    
 
    $scope.options = [4,5,6]; 
 
    
 
    }, 3000) 
 
    
 
}
<div ng-app="angularApp"> 
 
    <div ng-controller="testCtrl"> 
 
     <select ng-model="initialSelectedValue" ng-options="option for option in options"></select> 
 
    </div> 
 
</div>

편집 : 나는 단순히 빠른 수정으로 ""= 값 옵션을 추가 할 수 있지만 내 경우에는 내가이 옵션이 없을 수 없습니다 알고있다.

답변

2

중간에 목록을 변경하고 있기 때문에 ViewModel initialSelectedValue (초기 이름이 아니기 때문에 이름이 잘못 지정되었지만 실제 선택된 현재 값)이 유효한 옵션을 가리 키지 않고 매달려 있습니다. select

모델이 "커버 아래"로 변경되지 않고 컨트롤러 또는 입력 변경에 의해서만 명시 적으로 설정/변경 될 수 있도록 수행됩니다.

$scope.options = [1,2,3]; 
$scope.selectedValue = 2; // I changed the name 

$timeout(function(){ 

    $scope.options = [4,5,6]; 
    $scope.selectedValue = $scope.options[0]; 

}, 3000) 
: 당신이 목록을 변경할 때

는이 문제를 해결하려면 사용 가능한 옵션 중 하나에 모델을 변경
관련 문제