何时获得Angular指令的宽度?

时间:2014-10-09 09:41:58

标签: angularjs angularjs-directive

何时以及如何在Controller和/或Directive中获取待编译div的长度,在这种情况下为.length-wanted,而不依靠{{1 }}?或者是否有一个事件告诉我Angular的工作已经全部完成,我可以得到它的高度/宽度?​​

$timeout

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

1 个答案:

答案 0 :(得分:0)

由于调整大小可能会改变,因此我最终选择了:

<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的情况下返回已监视的函数来优化此操作。