Ich habe ein paar benutzerdefinierte Direktiven, die jQuery für Animationseffekte verwenden (Angular eingebautes ngShow/ngHide und dergleichen sind funktional, aber nicht hübsch). Ich glaube, ich erinnere mich in der Dokumentation irgendwo lesen, dass eckig hat einen eigenen DOM-Selektor (etwas wie angular.export()
oder angular.select()
), die ich anstelle von $(SELECTOR)
verwenden sollte; aber ich kann es jetzt nicht finden.AngularJS-DOM-Selektor
ich so etwas wie das tue:
//view
<div scroll-to="element"> //`element` is set via ng-click
…
</div>
//directive
link: function(scope, elm, attrs)
{
scope.$watch(attrs.scrollTo, function scrollToAction(newValue,oldValue)
{
if (newValue !== oldValue)
{
elm.animate({
scrollTop:
$('#'+newValue).offset().top //replace jquery selector with angular's
- elm.offset().top
+ elm.scrollTop()
});
}
});
}
Ich bin wirklich nicht $('#'+newValue)
manipulieren, nur Informationen abrufen darüber, so dass ich glaube nicht, daß ich ein Verbrechen gegen Eckige zu begehen.
+1 Ich habe auch zusätzliche Informationen hinzugefügt, die erklären könnten, warum das OP glaubt, eine eckige Methode gesehen zu haben, mit der man Elemente auswählen kann. –
Ah danke, ja das ist es genau. Ich schließe jQuery vor eckig ein, also ist 'eckle.element()' immer noch vorzuziehen? Es scheint, als würde es nur zusätzlichen Aufwand für die Auflösung des Alias hinzufügen. – jacob
@jacob, würde ich 'angular.element()' verwenden, so dass, wenn in der Zukunft Ihr Code jQuery nicht mehr benötigt, Sie es nicht aktualisieren müssen. –