2016-08-30 4 views
0

내 범위에 개체 배열이 있습니다. 또한 배열에있는 모든 객체의 특정 속성을 변경하는 ng-click 루틴을 장비하고 싶은 버튼이 있습니다.Angular ng-click은 모든 배열 요소를 변경합니다.

ng-click에서 한 줄짜리로 모두 할 수 있습니까? 대안 I는 I이 모든 요소를 ​​조정하고 싶다고 함수 내 범위를 장비하고 배열을 전달할 수

예 :.

범위 :

{"languages": [ 
    { 
     "hide": false, 
     "title": "Deutsch", 
     "level": 7 
    }, 
    { 
     "hide": false, 
     "title": "Englisch", 
     "level": 6 
    }, 
    { 
     "hide": false, 
     "title": "Französisch", 
     "level": 2 
    }] 
} 

그리고 내 각 버튼 (순간에 의사 함수가 있음) :

<a class="button" href="#" ng-click="angular.forEach($scope.languages, function (item, index) {item.hide=true});">Alle ausblenden</a> 

답변

0

범위의 기능에 넣습니다. 최대한 간단하게보기를 유지하십시오. 컨트롤러에 JS 코드를 넣어 단위 테스트, 문서화, 형식 지정을 할 수 있습니다.

그리고 그것은 범위에이기 때문에 당신도, 배열을 통과 할 필요가 없습니다 :

ng-click="hideAllLanguages()" 

이 훨씬 더 읽을 수 없습니다?

+0

간단합니다. 그러나 범위의 언어 요소는 하나입니다. 범위 내의 다른 배열에 대해서도 논리를 다시 사용하고 싶습니다. 어떻게 참조 할 수 있도록 함수에 대한 참조를 전달할 수 있습니까? 예 : 위치, 언어 등 – Nogga

+0

무슨 뜻인지 이해가 안됩니다. 여러 배열에 동일한 함수를 사용하려면 배열을 함수의 인수로 전달하십시오. –

+0

당신은 완전합니다. 나는 그것을 얻는다 : ng-click = "hideChildElements (languages)"그리고 해당 함수는 다음과 같다 : $ scope.hideChildElements = function (parent) {angular.forEach (parent, function (item, index) {item.hide = true}); } – Nogga

관련 문제