Saya relatif baru untuk AngularJS dan curiga saya tidak memahami konsep. Saya juga menggunakan Bootstrap Twitter dan saya punya jQuery dimuat.
Alur Kerja: Pengguna mengklik tautan dari daftar, bagian "master" diperbarui dan tautan pengguna mengklik pada kelas aktif.
Markup HTML Dasar:
<ul class="list-holder" ng-controller="adminController">
<li><a ng-click="setMaster('client')">Clients</li>
<li><a ng-click="setMaster('employees')">Employees</li>
<li><a ng-click="setMaster('etc')>Etc...</li>
</ul>
Melakukan ini di jQuery:
jQuery(".list-holder").on('click', 'a', function(event){
event.preventDefault();
jQuery(".list-holder li").removeClass('active');
jQuery(this).parent('li').addClass('active');
});
Tapi saya tidak tahu cara mengintegrasikan Angular dan jQuery untuk menyelesaikan ini, karena saya menggunakan Angular untuk mengambil daftar master (dalam bentuk JSON) dari server dan memperbarui daftar di halaman.
Bagaimana saya mengintegrasikan ini? Saya tidak dapat menemukan elemen yang saya klik setelah saya berada di dalam fungsi pengontrol sudut
Pengendali:
function adminController($scope)
{
$scope.setMaster = function(obj)
{
// How do I get clicked element's parent li?
console.log(obj);
}
}
ng-click="setMaster(section, $event)"
Hanya kepala.<a ng-click="doSomething(); $event.stopPropagation()">Click Just Me</a>
$event.target
seperti ini mungkin bukan "cara sudut" Saya merasa seperti memiliking-repeat
daftar besar dengan setiap item yang membutuhkan pendengar untuk mengevaluasi perubahan tidak efisien? Mengklik satu elemen berarti setiap item dalam seluruh daftar harus dievaluasi ulang bukan? - mengapa tidak hanya menargetkan satu item dengan$event.target
untuk beralih kelas CSS misalnya. Bagaimana menurut anda? Saya sedang mengerjakan Aplikasi Phonegap dan perlu memeras setiap perubahan kinerja yang saya bisa.$event.currentTarget
bukan$event.target
. Jika elemen dengan ng-klik memiliki elemen anak, jika elemen anak diklik$event.target
menjadi elemen anak.$event.currentTarget
akan selalu menargetkan elemen dengan ng-klik yang ditunjuk.