当得到一个角指令的宽度是多少?(When to get the width of an Angula

2019-10-21 03:21发布

当我怎样才能得到一个待编译DIV的长度Controller和/或Directive.length-wanted在这种情况下,而不是诉诸$timeout ? 或者是有一个事件告诉我,角的工作全部做完,我可以去得到它的高度/宽度?

<div ng-controller="testCtrl">
    <div get-length>
        <div class="length-wanted" ng-bind="arr"></div>
    </div>
</div>

这里演示: http://jsfiddle.net/luxiyalu/tm54k4je/

Answer 1:

因为它可能是其规模可能与调整大小的改变,我最终去用:

<div ng-controller="testCtrl">
    <div get-length>
        <div class="height-wanted" height="data.height" ng-bind="arr"></div>
    </div>
</div>

指示:

app.directive('lengthWanted', function() {
  return {
    restrict: 'C',
    scope: {height: '='},
    link: function (scope, element) {
      scope.$watch(function() {
        return element.height();
      }, function(newVal) {
        scope.height = newVal;
      });
    }
  };
});

当然,这是检查每元素的高度$digest 。 你可以通过存储优化这种resized财产scope ,如果它设置为false返回观看的功能。



文章来源: When to get the width of an Angular directive?