Ich bin relativ neu bei AngularJS und vermute, dass ich kein Konzept verstehe. Ich verwende auch Twitter Bootstrap und habe jQuery geladen.
Workflow: Der Benutzer klickt auf einen Link aus einer Liste, der Abschnitt "Master" wird aktualisiert und der Linkbenutzer, der auf "Aktiv" klickt, erhält eine aktive Klasse.
Grundlegendes HTML-Markup:
<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>
Tun Sie dies in jQuery:
jQuery(".list-holder").on('click', 'a', function(event){
event.preventDefault();
jQuery(".list-holder li").removeClass('active');
jQuery(this).parent('li').addClass('active');
});
Ich kann jedoch nicht herausfinden, wie Angular und jQuery integriert werden können, um dies zu erreichen, da ich Angular verwende, um die Hauptliste (in JSON-Form) vom Server abzurufen und eine Liste auf der Seite zu aktualisieren.
Wie integriere ich das? Ich kann das Element, auf das ich geklickt habe, nicht finden, wenn ich mich in der Winkelsteuerungsfunktion befinde
Regler:
function adminController($scope)
{
$scope.setMaster = function(obj)
{
// How do I get clicked element's parent li?
console.log(obj);
}
}
ng-click="setMaster(section, $event)"
Nur ein Kopf hoch.<a ng-click="doSomething(); $event.stopPropagation()">Click Just Me</a>
$event.target
dieser Methode möglicherweise nicht der "eckige Weg" ist, ist es meiner Meinungng-repeat
nach nicht effizient , eine große Liste mit jedem Element zu haben, bei dem ein Listener zur Bewertung einer Änderung benötigt wird. Wenn Sie auf ein Element klicken, bedeutet dies, dass jedes Element in der gesamten Liste neu bewertet werden muss, oder? - Warum nicht einfach auf dieses eine Element abzielen,$event.target
um beispielsweise eine CSS-Klasse umzuschalten? Was denken Sie? Ich arbeite an einer Phonegap-App und muss jede Leistungsoptimierung, die ich kann, unter Druck setzen.$event.currentTarget
anstelle von zu verwenden$event.target
. Wenn das Element mit ng-click untergeordnete Elemente enthält, wird das untergeordnete Element zum untergeordneten Element, wenn auf das untergeordnete Element geklickt$event.target
wird.$event.currentTarget
zielt immer mit dem angegebenen ng-Klick auf das Element ab.