2016-11-22 7 views
0

옵션을 나열하는 데 각도를 사용했습니다. 그러나 중첩 배열에 ng-options을 사용하는 방법은 무엇입니까?중첩 배열에 ng-options을 사용하는 방법은 무엇입니까?

<select chosen 
option="countries" 
ng-model="data" 
    ng-options="??"> 
</select> 

이것은 내 배열입니다.

$scope.data= [ 
    { 
"Name": "Cat1", 
"CategoryID": "1", 
"actions": [ 
    { 
    "ActionName": "action1", 
    }, 
    { 
    "ActionName": "action2", 

    } 
] 
}, 
{ 
"Name": "cat 2", 

"actions": [ 
    { 
    "ActionName": "action3", 
    }, 
    { 
    "ActionName": "action4", 

    } 
] 
} 
    { 
"Name": "cat 3", 
"actions": [ 
    { 
    "ActionName": "action5", 
    }, 
    { 
    "ActionName": "actions 5", 

    } 
] 
} 

] 

나는
조치 1

조치 2 CAT2이
CAT1에게 카테고리 이름의 거짓말에 의해
action3
action4
CAT3
action5을 옵션 그룹을 나열 할
action6

답변

0

"데이터"를 구문 분석하여 아래 형식으로 변환하고 아래 표시된 ng-options를 사용할 수 있습니다.

$scope.countries = [ 
    { actionName: 'action1', catName: 'cat1' }, 
    { actionName: 'action2', catName: 'cat1' }, 
    { actionName: 'action3', catName: 'cat2' }, 
    { actionName: 'action4', catName: 'cat2' }, 
    { actionName: 'action5', catName: 'cat3' }, 
    { actionName: 'action6', catName: 'cat3' } 
]; 

<select ng-model="country" 
     ng-options="item.actionName group by item.catName for item in countries"> 
</select> 

내가 자바 스크립트에서 새로운 배열을 생성 NG-옵션을 반복 한 https://www.undefinednull.com/2014/08/11/a-brief-walk-through-of-the-ng-options-in-angularjs/

0

이 링크에서 NG-옵션에 대한 자세한 정보를 찾아 아래의 링크

https://plnkr.co/edit/i9LfV50Y2gXElFzVgFDl?p=preview

을 확인하시기 바랍니다

배열을 만들었고 모든 값을 그 안에 넣었습니다. 작동합니다.

 $scope.uniqueOptions = []; 

for (var i = 0; i < $scope.data.availableOptions.length; i++) 
    $scope.uniqueOptions.push($scope.data.availableOptions[i].Name); 
    //alert($scope.data.availableOptions[i].Name); 
    for (var j = 0; j < $scope.data.availableOptions[i].actions.length; j++) 
    // alert($scope.data.availableOptions[i].actions.length); 
     //alert($scope.data.availableOptions[i].actions[0].ActionName); 
      $scope.uniqueOptions.push($scope.data.availableOptions[i].actions[j].ActionName; 

enter code here