Saya memiliki daftar item dalam pandangan saya dengan ng-click
terlampir:
<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>
Saya menangani acara klik dalam foo
fungsi dalam arahan saya, meneruskan $event
sebagai referensi ke objek yang telah diklik, tapi saya mendapatkan referensi ke img
tag, bukan li
tag. Saya kemudian harus melakukan hal-hal seperti ini untuk mendapatkan 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
}
})();
Apakah ada cara sederhana untuk mendapatkan referensi ke elemen yang ng-click
terikat, tanpa melakukan operasi DOM dalam arahan saya?
var elem = $event.currentTarget || $event.srcElement
. Selalu lebih ramah lintas-silang, namun saya tidak tahu apakah perlu lagi.Bukan jawaban langsung untuk pertanyaan ini melainkan untuk "masalah" yang
$event.currentTarget
tampaknya disetel ke nol.Hal ini disebabkan oleh fakta bahwa console.log menunjukkan objek yang dapat berubah dalam kondisi eksekusi terakhir, bukan pada kondisi ketika console.log dipanggil.
Anda dapat memeriksa ini untuk informasi lebih lanjut: Panggilan berurutan ke console.log menghasilkan hasil yang tidak konsisten
sumber