我有一些使用jQuery进行动画效果的自定义指令(angular的内置ngShow/ngHide等功能很强,但并不漂亮).我想我记得在文档中读取angular有自己的DOM选择器(类似于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()
});
}
});
}
Run Code Online (Sandbox Code Playgroud)
我并没有真正操纵$('#'+newValue),只是检索有关它的信息,所以我认为我不会对Angular犯罪.