2014-10-21 4 views
0

그래서 일부 개체의 내부 값을 기준으로 선택 인덱스를 설정하려고합니다. 개체를 순환하면서 콘솔에서 colorID가 업데이트되고 올바르게 표시되는 것을 볼 수 있습니다. 선택 인덱스는 마지막으로 선택한 옵션에서 변경되지 않습니다. 내가 뭘 놓치고 있니? 미리 감사드립니다.선택 인덱스 설정

HTML :

<select 
     ng-model="colorModel" 
     ng-change="updateColor(colorModel.id)" 
     ng-options="i.label for i in colorOptions"> 
</select> 

컨트롤러 :

$scope.colorOptions = [ 
     {value: 'red', label: 'Red', id: 0}, 
     {value: 'green', label: 'Green', id: 1}, 
     {value: 'blue', label: 'Blue', id: 2}, 
     {value: 'yellow', label: 'Yellow', id: 3} 
    ]; 

//setting it here works just fine 
$scope.colorModel = $scope.colorOptions[2]; 


$scope.nextOption = function(){ 
     $scope.groupIndex++; 
     $scope.currentOption = userOptions[$scope.groupIndex]; 
     $scope.colorModel = $scope.colorOptions[$scope.currentOption.colorID]; 
     //I event tried this with no luck 
     $scope['colorModel'] = $scope.currentOption.colorID; 
} 

답변

2

당신이 $scope.colorModel에 갖고 싶어하는 것은 당신이 select에 표시 할 것을 배열 $scope.colorOptions의 색상 개체입니다,하지만 것 같다 label이 맞습니까? 그런 다음, ng-options에 대한 올바른 구문은 다음과 같습니다

이처럼, 당신의 controller$filter 서비스를 주입해야합니다
app.controller("yourController", function($scope, $filter){ 
    $scope.colorOptions = [ 
      {value: 'red', label: 'Red', id: 0}, 
      {value: 'green', label: 'Green', id: 1}, 
      {value: 'blue', label: 'Blue', id: 2}, 
      {value: 'yellow', label: 'Yellow', id: 3} 
     ]; 

    //setting it here works just fine 
    $scope.colorModel = $scope.colorOptions[2]; 

    $scope.nextOption = function(){ 
      $scope.groupIndex++; 
      $scope.currentOption = userOptions[$scope.groupIndex]; 
      $scope.colorModel = $filter('filter')($scope.colorOptions, {id:$scope.currentOption.colorID})[0]; 
    } 
}); 

주의 사항 : app.controller("yourController", function($scope, $filter){...

컨트롤러에서
<select 
     ng-model="colorModel" 
     ng-change="updateColor(colorModel.id)" 
     ng-options="i as i.label for i in colorOptions"> 
</select> 

이렇게

Working Example

+0

빠른 답장을 보내 주셔서 감사합니다. ng-options 예제와 일치하도록 변경했고 선택 변경에 대해서는 여전히 운이 없었습니다. 로깅 할 때 colorModel이 업데이트되는 것을 볼 수 있습니다. select는 업데이트하지 않습니다. 이상하게도 원래 회신에 코드 블록 만 표시되었습니다. 예라는 질문에 답하기 위해 currentObject.ID와 연관된 레이블을 표시하려고합니다. 개체 측면 그것은 아무 문제가 업데이 트되고있다, 그냥 선택 좋은 재생되지 않습니다. – Rudy

+0

@Rudy 내 잘못, 나는 문제의 다른 반쪽을 놓 쳤어, 방금 내 대답을 업데이 트, 제발 좀 봐 그것을 작동하는 경우 알려 주시기 바랍니다. 감사! – Josep

+0

다시 Josep에게 제안 해 주셔서 감사합니다. 나는 너의 모범을 보았지만 여전히 운이 없었어. 변경되는 한 가지는 colorModel = $ filter를 설정하면 ..... colorModel이 정의되지 않은 상태로 되돌아 오는 것입니다. – Rudy