2017-12-29 3 views
0

ng-repeat에는 기본적으로 스위치처럼 작동하여 여러 개의 데이터를 가져 오는 버튼이 각 컨트롤러에 전달되어야하며 컨트롤러는 그 값을 밀어 넣어야합니다 첫 번째 클릭시 배열에 저장하고 다음에 해당 값을 삭제합니다 (전환 동작). i가 모든 버튼이 활성화되는 버튼을 클릭하면ng-repeat 내부의 토글 버튼 md-button

내 HTML 코드 세그먼트

$scope.ambutton=[1,2,3,4,5,6,7,8,9,10] 
    $scope.getTime = function (choice,ambutton) { 
      $scope.variable = !$scope.variable; 
      if($scope.variable){ 
       //save the value to an array; 
      } 
      else{ 
       //remove the value from array 
      } 
     }; 

문제에 직면

<md-button id="{{choice.id}}btn{{ambutton}}" ng-repeat="ambutton in ambuttons" ng-click="getTime(choice,ambutton);" class="md-fab md-primary" ng-class="{'active md-warn': variable,'disable md-primary': !variable}">{{ambutton}}</md-button> 

콘트롤러 기능, 난 variable0,variable1,variable2 같은 각 버튼에 differnt 변수를 추가하는 시도 .. (variable{{ambutton}})을 추가하고 컨트롤러에서 if-elseif을 사용하면 문제가 없습니다. 그러나 각 버튼과 관련하여 더 나은 해결책이 필요합니까?

답변

0

확인이 밖으로 http://jsfiddle.net/n2p1ocqz/7/

당신이 배열로 인덱스로 조작 variables를 사용 여부를

$scope.ambuttons=[1,2,3,4,5,6,7,8,9,10] 
    $scope.variables=[]; 
    $scope.getTime = function (choice, ambutton, index) { 
      $scope.variables[index] = !$scope.variables[index]; 
      if($scope.variable[index]){ 
       //save the value to an array; 
      } 
      else{ 
       //remove the value from array 
      } 
     }; 

와 같은 선택하거나 할 수없는 당신의 부분 같은

<md-button ng-repeat="ambutton in ambuttons track by $index" ng-click="getTime(choice, ambutton, $index);" class="md-fab md-primary" ng-class="{'active md-warn': variable,'disable md-primary': !variables[$index]}">{{ambutton}}</md-button> 
+0

이 중대하다, 하지만 내 사용의 경우이 단추 컬렉션을 다시 http://jsfiddle.net/rahulaunni/fv6Lea7j/2/ 같은 다른 선택에 대한 입력을 받아야 할 수도 있습니다, 어떻게 그 문제를 해결할 수 –

+1

이 http : //를 확인하십시오 j sfiddle.net/fv6Lea7j/4/ 그것은 할 것인가? 도움을 주신 덕분에 –

+0

고맙습니다. –