2013-09-03 7 views
2
AngularJS와에서

에서 배열의 요소에 바인딩, 나는 성공적 배열의 요소에 텍스트 입력을 결합 할 수 있습니다AngularJS와

<input type="text" ng-model="foo[2]" /> 

이 허용, 아니면 그냥 우연히 작동합니까?

select 요소 또는 확인란 입력을 배열 요소에 바인딩하려고하면 즉, select 요소가 선택 항목의 표시된 값 또는 바운드 값을 변경하지 않고 클릭 할 때 확인란을 표시하지 않습니다.

여기에 뭔가가 있습니까?


업데이트 : 그것은 JSFiddle 작동합니다 http://jsfiddle.net/azFzc/

답변

2

그것은 선택 요소에 대한 작업

이 jsfiddle http://jsfiddle.net/fStE7/

HTML

<div ng-app> 
<div ng-controller="MyController"> 
    Select 
<select ng-change="changed()" 
     ng-options="option.value as option.label for option in options" ng-model="ar[0]"> 
</select> 
</div> 
</div> 

를 봐 않습니다 JS

function MyController($scope){ 
    $scope.options = [ 
     { label : "first element", value : 0 }, 
     { label : "second element", value : 1 }, 
    ] 

    $scope.ar = []; 
    $scope.ar[0] = 0; 

    $scope.changed = function(){ 
     console.log($scope.ar[0]); 
    } 
} 
+0

예, 그렇지 않은 AngularJS와의 나의 이해에서 내 응용 프로그램에서이 문제였다. – fadedbee

1

바인딩을 통해 숫자가 아닌 배열 할당을 표시하도록 위의 예를 수정했습니다. 보다 복잡한 데이터를 다룰 때나 배열이 값을 업데이트하고 검색하기 위해 키 시스템을 사용할 때 가장 유용합니다.

https://jsfiddle.net/9obtkoa7/

HTML

<div ng-app> 
<div ng-controller="MyController"> 
    Select 
<select ng-change="changed()" 
     ng-options="option.value as option.label for option in options" ng-model="ar['SomeId']"> 
</select> 
</div> 
</div> 

JS

function MyController($scope){ 
    $scope.options = [ 
     { label : "first element", value : '1' }, 
     { label : "second element", value : '2' }, 
    ] 

    $scope.ar = []; 
    $scope.ar['SomeId'] = '1'; 

    $scope.changed = function(){ 
     console.log($scope.ar['SomeId']); 
    } 
}