2014-04-14 4 views
1
var options = [ 
      {name: ['black', 'green', 'black'], shade:'dark'}, 
      {name: ['white', 'black', 'white'], shade:'light'}, 
      {name: ['grey', 'white', 'yellow'], shade:'dark'}, 
      {name: ['red', 'black', 'red'], shade:'dark'}, 
      {name: ['yellow', 'green', 'black'], shade:'light'} 
      ]; 

    var app = angular.module('module', []); 
     app.controller('MainCtrl', function($scope) { 
     $scope.options = options; 
     $scope.$watch('myselect', function(val) { 
     console.log(val); 
    }); 
}); 
    </script> 
    </head> 

    <body ng-controller="MainCtrl"> 
    <div ng-repeat="option in options"> 
     <select ng-model="myselect" ng-options=" item for item in option.name"></select> 
    </div> 
    </body> 

저는 새로운 각도에서나 웹 개발 중에 있습니다. 이름 배열 요소 중 하나를 선택하여 서버로 보내야합니다. 나는 이런 식으로하려고 노력하고 있지만, 아무 일도 일어나지 않는다. 어떤 도움을 주셔서 감사합니다.각도를 사용하여 배열 요소를 어떻게 선택합니까?

+0

@adrichman 옵션 변수에 name 속성이 없습니다. 올바른 시계입니다. – doodeec

답변

1

코드에서 몇 가지 문제가 있습니다 그들은 다음과 같습니다 : 동일한 모델 myselect에 모든 선택을 결합

  • 당신을 위해 몇 가지 예제 코드가있다.

  • 초기 값 myselect 모델이 설정되지 않았습니다. 개체 속성의 변화를 감시하기 위해 당신이 watch()

HTML의 세 번째 매개 변수로 true를 사용해야에서

  • <body ng-controller="MainCtrl"> 
        <div ng-repeat="option in options"> 
         <select ng-model="myselect[$index]" ng-options="item for item in option.name"></select> 
        </div> 
    </body> 
    

    자바 스크립트 여기

    var options = [ 
        {name: ['black', 'green', 'black'], shade:'dark'}, 
        {name: ['white', 'black', 'white'], shade:'light'}, 
        {name: ['grey', 'white', 'yellow'], shade:'dark'}, 
        {name: ['red', 'black', 'red'], shade:'dark'}, 
        {name: ['yellow', 'green', 'black'], shade:'light'} 
    ]; 
    
    var app = angular.module('module', []); 
    
    app.controller('MainCtrl', function($scope) { 
        $scope.options = options; 
        $scope.myselect = {}; // <= set initial value to be an empty object 
        $scope.$watch('myselect', function(val) { 
        console.log(val); 
        }, true); // <= use true as third parameter in order to watch object property changes 
    }); 
    

    는이다 plunker 작동 예제.

    서버에 뭔가를 보내려면 Angular의 빌드 $http 서비스를 사용할 수 있습니다.

  • +0

    감사합니다 바딤! 좋은 대답! – Ivan

    0

    'ng-app'와 같은 코드가 누락 된 것 같습니다. 왜 div에 ng-repeat를 추가합니까?
    사실, select 요소에 대해서만 ng-repeat를 추가합니다.
    example

    +0

    시계 콘솔입니다. 선택을 변경하면 일부 로그를 볼 수 있습니다. – smallg

    관련 문제