AngularJS - bind to directive resize

后端 未结 6 1836
Happy的楠姐
Happy的楠姐 2020-12-08 20:18

How can i be notified when a directive is resized? i have tried

element[0].onresize = function() {
            console.log(element[0].offsetWidth + \" \" +          


        
6条回答
  •  暖寄归人
    2020-12-08 21:04

    Here is my take on this directive (using Webpack as bundler):

    module.exports = (ngModule) ->
    
      ngModule.directive 'onResize', ['Callback', (Callback) ->
        restrict: 'A'
        scope:
          onResize: '@'
          onResizeDebounce: '@'
        link: (scope, element) ->
          container = element[0]
          eventName = scope.onResize || 'onResize'
          delay = scope.onResizeDebounce || 1000
          scope.$watchGroup [
            -> container.offsetWidth ,
            -> container.offsetHeight
          ], _.debounce (values) ->
            Callback.event(eventName, values)
          , delay
      ]
    

提交回复
热议问题