2014-10-28 3 views
1

선택 요소에서 애트리뷰트를 선택하기 위해 각도 선택 플러그인을 사용하고 있습니다.각도 선택이 바인딩되지 않았습니다 개체 배열

내 데이터가이 형식으로되어 있습니다 :

$scope.pets = [ 
     { 
      id: '1', 
      name: 'Dog', 
      desc:"Something" 
     }, 
     { 
      id: '2', 
      name: 'Cat', 
      desc:"Something" 
     }, 
     { 
      id: '3', 
      name: 'Rat', 
      desc:"Something" 
     } 
    ]; 

그리고 NG-옵션을 사용하여 이름을 표시하기위한 각 선택이 끝난 구현하는 것입니다 :

<select multiple ng-model="myPets" ng-options="r as r.name for r in pets" chosen> 

위와 같은 데이터에 대해 ng-options을 사용하여 드롭 다운을 얻을 수 있습니다. enter image description here

내 모델이 다음 객체에 바인딩되어있는 경우 기본 값을 입력 선택 상자에 어떻게 바인딩 할 수 있습니까? :

$ scope.myPets = { ID : '6', 이름 : '돼지', 내용 : "뭔가" },

+0

가능한 중복 [선택 상자에서 기본 옵션을 유지하는 방법 - Angular.js] (http://stackoverflow.com/questions/18194255/how-to-have-a-default-option-in-select- box-angular-js) – Cherniv

답변

2

당신은의 기본 값을 설정할 수 있습니다 컨트롤러를 사용하여

$scope.myPets= [$scope.pets[0], $scope.pets[5]]; 

여러 항목을 선택했기 때문에 배열 []을 사용해야한다고 생각했던 것과 비교하십시오. 기존 객체를 직접 참조하거나 앵귤러/자바 스크립트가 연결을 인식하지 못합니다.

+0

감사합니다. @ Absor.By 기본값은 동적 값을 $ scope.myPets에 바인딩해야합니다. 어떻게하면됩니까? – forgottofly

+1

@MANOJ 동적 값은 무엇을 의미합니까? 예를 들어, ajax 호출의 데이터라면'$ scope.pets'를 설정 한 후에'$ scope.myPets'를 설정할 수 있습니다. – Absor

+0

Ajax와 마찬가지로 $ scope.myPets 내부의 객체를 호출하면 요소를 선택하고 다음에 페이지를로드 할 때 이전에 선택한 요소가 모델에 나열되어야하므로 변경됩니다. 즉, $ scope.myPets – forgottofly

관련 문제