指令链接函数内的dom操作问题 - Angularjs

时间:2015-10-15 11:39:24

标签: angularjs angularjs-directive

我设置了如下指令:

.directive('ogTakeATour', function() {
  return {
    restrict: 'E',
    replace: true,
    templateUrl: '../scripts/directives/TakeATourTemplate.html',
    scope: {
     content: '@',
      uid: '@'
    },
    link: function(scope) {
      angular.element(scope.uid).css("top","250px");
    }
  };
 });

指令模板如下所示:

<div id="{{uid}}" class="tourContainer">
  {{content}}
</div>

这就是我称之为指令的方式:

<og-take-a-tour content="Content goes here" uid="menuTour"></og-take-a-tour>

但由于某些原因,这不适用于适用的div。

angular.element(scope.uid).css("top","250px");

这是为什么?可能是指令在链接函数运行时不知道我的元素的id是什么?如果是这种情况,我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

Angular的jQlite不支持id或CSS选择器搜索。所以改变你的代码:

angular.element(document.querySelector('#' + scope.uid)).css("top", "250px");