2014-07-17 2 views
0

사용자 역할을 관리하는 응용 프로그램이 있습니다. 배열에 사용자 수가 많습니다. $scope.users. 사용자 개체의 구조는 다음과 같습니다각도 선택 빈 값

{ 
    name: "Larry", 
    role: { 
     id: 2, 
     name: "Work" 
     class: "role-work" 
    }, 
    mustHaveRole: true 
} 

나는 또한 배열 $scope.roles에서 역할의 무리가 있습니다. 각 역할 요소의 구조는 각 사용자 role 필드와 같습니다.

모든 역할이 $scope.roles<select> 요소를 만들어야합니다. 각각의 <option> 요소는 class 필드에 지정된 클래스를 가져야합니다. 사용자의 role.id과 일치하는 id이있는 역할을 초기에 선택해야합니다. <select> 요소는서만 선택된 <option> 요소의 클래스를 상속해야합니다. mustHaveRolefalse으로 설정된 사용자의 경우 role 필드를 null으로 설정하는 빈 요소가 있어야합니다.

어떻게 달성 할 수 있습니까? ng-options 충분히 유연하지 같은 느낌,하지만 난 ng-repeat와 모든 <option> 요소를 만들 때, 각도는 때때로 there-

+0

옵션을 반복해야하지만, 옵션에 클래스를 추가하는 것은 좋지 않은 것처럼 들립니다. – Rob

+0

좋은 생각 일 수도 있고 아닐 수도 있지만 필요합니다. 각 역할은 유형에 따라 배경색을 가져야하므로 쉽게 구별 할 수 있습니다. 언급 한 바와 같이,'ng-repeat '은 때때로 필요없는'

답변

0

가 사용자 역할 ID로 ng-model 지정 안 여분의 빈 <option> elementy를 생성

<div ng-controller="MyCntrl"> 
    <select ng-model="user.role.id" ng-options="v for v in roles"> 
    </select> 
</div> 

function Ctrl($scope) { 
    $scope.roles= { "type": "select", 
    "values": [ "Role 1", "Role 2", "Role 3", "Role 4"] 
    }; 
} 

체크 plnkr

+0

옵션에 클래스를 할당해야합니다. –