Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 指令不';不要总是在页面加载时触发_Javascript_Angularjs - Fatal编程技术网

Javascript 指令不';不要总是在页面加载时触发

Javascript 指令不';不要总是在页面加载时触发,javascript,angularjs,Javascript,Angularjs,我有一个指令,它获取一个特定元素的高度并将其应用于另一个元素 但由于某些原因,它并不总是在页面加载时启动。我认为,在某些情况下,加载元素的时间太长,如果只在元素完全加载后处理它,这可能是一个更明智的想法。它似乎可以很好地调整页面大小(有时) 这是为什么?我如何修复它 例如: // grab information of div height here <div class="col-sm-6" id="left-photos" element-size key="leftPhot

我有一个指令,它获取一个特定元素的高度并将其应用于另一个元素

但由于某些原因,它并不总是在页面加载时启动。我认为,在某些情况下,加载元素的时间太长,如果只在元素完全加载后处理它,这可能是一个更明智的想法。它似乎可以很好地调整页面大小(有时)

这是为什么?我如何修复它

例如:

// grab information of div height here    

<div class="col-sm-6" id="left-photos" element-size key="leftPhotoSize"></div>

// apply it here

<div class="col-sm-6" ng-style="{ 'height': leftPhotoSize.height + 30 + 'px' }"></div>

请将度量函数放在$watch函数中,然后再加上scope。$apply()。

我该怎么做?我可以看一个代码示例吗?当然可以,u[dated.谢谢!
angular.module('adsomaApp')
  .directive('elementSize', function ($timeout, $window) {
    return {
      restrict: 'A',
      link: function (scope, element, attrs) {
        var height, width;
        var measure = function () {
          height = element[0].offsetHeight;
          width = element[0].offsetWidth;
          if (attrs.key) {
            scope[attrs.key] = {
              height: height,
              width: width
            };
          }
          scope.elementSize = {
            height: height,
            width: width
          };
        };

        $timeout(function () {
          measure();
        });
        $window.load(function() {
          measure();
        });
        angular.element($window).bind('resize', function () {
          measure();
          scope.$digest();
        });
      }
    };
  });