繁体   English   中英

用户更改窗口高度时如何在Angular中触发事件?

[英]how to Trigger the event in Angular when user change the windows height ?

每次用户更改窗口高度时,我都需要计算元素的位置。因此,我创建了一条指令。

  'use strict';
  angular.module "myApp"
  .directive 'uibPosition',['$position','$document','$timeout', ($position,$document,$timeout)->
    return {
      restrict: 'EAC',
      link: (scope, element, attr) ->
 //I want to Trigger this event when user change windows height
        $timeout ->
          if $document.height() - $position.position(element).top < 500
            element[0].querySelector('.custom-popup-wrapper').style.top = 'auto'
            element[0].querySelector('.custom-popup-wrapper').style.bottom = 40 + 'px'
          else
            element[0].querySelector('.custom-popup-wrapper').style.top = $position.position(element).top+40+'px'
    }
  ]

怎么做?我真的很感激

您可以将观察者添加到指令中:

        var w = angular.element($window);

        scope.getWindowDimensions = function () {
            return {
                "h": w.height(),
                "w": w.width()
            };
        };
        var watcherTimeout;
        scope.$watch(scope.getWindowDimensions, function (newValue) {
            $timeout.cancel(watcherTimeout);
            watcherTimeout = $timeout(function(){
                scope.callback();   // call callback function
            }, 300);
        }, true);

        w.bind("resize", function () {
            scope.$apply();
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM