一尘不染

AngularJS DOM选择器

angularjs

我有一些使用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犯下罪行。


阅读 424

收藏
2020-07-04

共1个答案

一尘不染

“jqLit​​e”(即上定义angular.element页)提供了DOM遍历的方法,如children()parent()contents()find()next()(但不是previous())。没有类似选择器的方法。

您可能要尝试使用JavaScript的querySelector

2020-07-04