2014-01-28 2 views
1

드롭 다운을 반복하는 ng 반복이 있습니다. 드롭 다운을 보유하고있는 반복 된 div에는 참조 할 수있는 컨트롤러에서 생성 한 고유 ID가 있습니다.ng-repeat의 특정 변수를 어떻게 다시 전달합니까?

특정 드롭 다운에 대해 선택한 옵션을 어떻게 되돌릴 수 있습니까? 현재 하나의 드롭 다운을 선택하면 selectedParameter.name의 값이 모든 드롭 다운에 대해 변경됩니다.

<div id="{{ mergeVar.name }}" class="alert {{ selectedParamClass }}" ng-repeat="mergeVar in mergeVars"> 
    <b>merge value: </b> {{mergeVar.name}} 
    <div class="dropdown pull-right"> 
     <button type="button" class="btn btn-sm btn-control dropdown-toggle" data-toggle="dropdown"> 
     {{selectedParameter.name || 'Match the Paramater'}} 
     <span class="caret"></span> 
     </button> 
     <ul class="dropdown-menu"> 
     <li ng-repeat="param in availableParams"> 
      <a ng-click="selectParameter(parampass)">{{param.name}}</a> 
     </li> 
     </ul> 
    </div> 
</div> 

//controller.js 

$scope.selectParameter = function(parampass) { 
    console.log('parameter selected') 
    $scope.selectedParameter = parampass 
    $scope.selectedParamClass = 'alert-success' 
} 
+0

나는 selectParameter (param) 패러다임이 어디에도 선언되어 있지 않다고 가정 할 것입니다. – Dalorzo

+0

일부 피들 또는 플 런커를 게시하십시오. –

답변

1

은 객체의 하나의 인스턴스 만 영향을주는 대신에이 작업을 수행 :

$scope.selectParameter = function(parampass) { 
    console.log('parameter selected') 
    parampass.selectedParamClass = 'alert-success'; 
} 

인스턴스 "행"개체에 속성을 추가하는 것입니다 필요한 것은. 난 당신이 아마에 할 원하는 코드에 표시되는 내용에 따라

$scope.selectedParameter = parampass 

그러나 항목을 선택한 개체를 선택한 경우 ng-class="selectedParamClass"을 사용하는 것입니다

당신은 여전히 ​​선택된 객체를 저장할 수 있습니다.

관련 문제