私のビューには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
}
})();
私のディレクティブでDOM操作を行わずにng-click
がバインドされている要素への参照を取得する簡単な方法はありますか?
$event.currentTarget
の代わりに$event.target
が必要です。
この質問に対する直接的な回答ではなく、むしろ$event.currentTarget
の「問題」に対する回答は明らかにnullに設定されています。
これは、console.logが呼び出されたときの状態ではなく、実行の最後の状態でconsole.logに可変の可変オブジェクトが表示されるためです。
あなたはより多くの情報のためにこれをチェックすることができます: console.logへの連続した呼び出しは矛盾した結果を生みます