뷰에 ng-click
첨부 된 항목 목록이 있습니다.
<ul id="team-filters">
<li ng-click="foo($event, team)" ng-repeat="team in teams">
<img src="{{team.logoSmall}}" alt="{{team.name}}" title="{{team.name}}">
</li>
</ul>
foo
내 지시문 의 함수에서 클릭 이벤트를 처리하여 클릭 $event
된 객체에 대한 참조로 전달 하지만 img
태그가 아닌 태그에 대한 참조를 얻습니다 li
. 그런 다음 다음과 같은 작업을 수행해야합니다 li
.
$scope.foo = function($event, team) {
var el = (function(){
if ($event.target.nodeName === 'IMG') {
return angular.element($event.target).parent(); // get li
} else {
return angular.element($event.target); // is li
}
})();
ng-click
내 지시문에서 DOM 작업을 수행하지 않고 바인딩 된 요소에 대한 참조를 얻는 간단한 방법이 있습니까?
답변
$event.currentTarget
대신에 필요 합니다 $event.target
.
답변
이 질문에 대한 직접적인 대답이 아니라 “문제”에 대한 대답은 $event.currentTarget
분명히 null로 설정됩니다.
console.log가 호출 된 상태가 아니라 마지막 실행 상태에서 console.log가 변경 가능한 깊은 오브젝트를 표시하기 때문입니다.
자세한 내용은이를 확인할 수 있습니다. console.log에 대한 연속 호출로 일관성없는 결과가 생성됩니다.