ng-class offset - 如何从元素中获取值

时间:2014-03-19 15:29:19

标签: angularjs

我无处可去。

我正在使用ng-class =“(checkPos)?left:right”

和checkPos是范围上的一个函数,它检查顶部和左侧的元素偏移量,以查看它在网页上的象限。

我不确定如何识别ng-class所在的元素,以便我可以开始检查值。任何帮助将不胜感激。我搜索了几个小时,所以请不要降级我!

2 个答案:

答案 0 :(得分:1)

这不是一个糟糕的问题。一种选择是使用指令而不是ng-class。它很容易重复使用。这样的事情应该有效。

<div x-class='checkPos'></div>

.directive('xClass', function() {
  return {
    restrict: 'A',
    scope: {
      checkPos: '=xClass'
    },
    link: function(scope, elem, attrs) {
      if (scope.checkPos(elem[0])) 
        elem.addClass('left');
      else
        elem.addClass('right');
    }
  }
});

答案 1 :(得分:1)

因为这将涉及DOM,所以您应该将其实现为指令。

<div positioner>Blah</div>

设置您的指令以处理属性(称为定位器或任何您想要的)。像这样:

angular.module('positionerDirective', [])
  .directive('positioner', function() {
    return {
      restrict: 'A',
      link: function(scope, element){
         var top = element[0].offsetTop;
         var left = element[0].offsetLeft;
         //do whatever math you need here
         angular.element(element).addClass(class you need);
      }
    };
  });