我有一些使用 jQuery 实现动画效果的自定义指令(angular 的内置 ngShow/ngHide 等功能实用,但不美观)。我想我记得在某个地方的文档中读到 angular 有它自己的 DOM 选择器(类似于angular.export()
or 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 犯了罪。