<li>
요소에 바인딩 된 항목의 배열은 AngularJS가있는 <ul>
입니다. 각 항목 옆에있는 "항목 제거"를 클릭하여 항목을 제거 할 수 있기를 원합니다.AngularJS : 하드 코어가없는 범위에서 삭제
This answer on StackOverflow를 사용하면 요소를 삭제할 배열의 이름이 하드 코드되어 있기 때문에 목록 전체에서 사용할 수 없습니다.
JSfiddle set up에서 예를 볼 수 있습니다. 게임 옆에있는 "제거"를 클릭하면 게임이 아닌 학생이 제거됩니다.
버튼에서 this
을 다시 전달하면 그 시점에서 각도 $ 범위에 액세스 할 수 있지만 부모 배열에서 해당 항목을 완전히 제거하는 방법을 알지 못합니다.
내가 할 수 ng-click="remove('games',this)"
정의 버튼이 있고 기능이 같은 모습이 : 난 동안이 기능을 깰 수있는 매우 좋은 방법처럼 보인다 내부
$scope.remove = function (arrayName, scope) {
scope.$parent[arrayName].splice(scope.$index,1);
}
(Like this JSFiddle)하지만 상위 배열을 이름을 내가 1 년 만에 코드를 편집 할 때.
아이디어가 있으십니까?
왜 두 가지 기능을 사용하지 않습니까? 하나는 학생을 제거하고 다른 하나는 게임을 제거합니다. –
이것은 실제로 구축하고있는 시스템의 단순화입니다. 페이지에 20 개의 서로 다른 목록이 있는데, 각 기능을 작성하기 위해 DRY에 대해 대단한 것처럼 보입니다! –