我有一些使用jQuery进行动画效果的自定义指令(Angular内置的ngShow / ngHide等功能有效,但并不美观)。我想我记得在文档中某个地方读到angular有它自己的DOM选择器(类似angular.export()or angular.select()),我应该使用它而不是$(SELECTOR); 但是我现在找不到。
angular.export()
angular.select()
$(SELECTOR)
我正在做这样的事情:
//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() }); } }); }
我并不是真正在操纵它$('#'+newValue),只是获取有关它的信息,所以我认为我没有对Angular犯下罪行。
$('#'+newValue)
“jqLite”(即上定义angular.element页)提供了DOM遍历的方法,如children(),parent(),contents(),find(),next()(但不是previous())。没有类似选择器的方法。
children()
parent()
contents()
find()
next()
previous()
您可能要尝试使用JavaScript的querySelector。