我有幾個自定義指令使用jQuery的動畫效果(角度的內置ngShow/ngHide等功能,但不漂亮)。我想我記得在文檔的某個地方閱讀的角度有它自己的DOM選擇器(類似angular.export()
或angular.select()
),我應該使用,而不是$(SELECTOR)
;但是我現在找不到它。AngularJS DOM選擇器
我在做這樣的事情:
//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)
,只是檢索有關它的信息,所以我不認爲我犯對角的罪行。
+1我還添加了額外的信息,可以解釋爲什麼OP感覺他看到了可以選擇元素的角度方法。 – 2013-03-07 20:15:27
啊謝謝,沒錯,就是這樣。我在angular之前包含了jquery,那麼'angular.element()'還是更可取的?它似乎會增加解析別名的額外開銷。 – jacob 2013-03-07 22:11:31
@jacob,我會使用'angular.element()',這樣如果將來你的代碼不再需要jQuery,你就不必更新它。 – 2013-03-07 23:00:03