首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-view的$window加载

ng-view的$window加载
EN

Stack Overflow用户
提问于 2016-05-30 01:28:57
回答 1查看 740关注 0票数 1

我有以下几点:

.directive('resizer', ['$window', function ($window) { return { restrict: 'A', link: function (scope, elem, attrs) {

代码语言:javascript
复制
        angular.element($window).on('load resize', function () {

          var sectionHeight = angular.element(document.querySelector('#aboutContentSection'))[0].offsetHeight;


          if (sectionHeight) {
              if (elem[0].scrollHeight + sectionHeight < $window.innerHeight) {
                elem.addClass('footerSetBottom')
              } else if (elem[0].scrollHeight + elem[0].offsetTop >= $window.innerHeight) {
                elem.removeClass('footerSetBottom')
              }
          }

        });


    }
}

}])

然而,问题是当我使用ng-view时,当我转到一个新页面时,上面的load没有被调用。

我假设这是因为页面在技术上已经加载,它只是使用了新的ng-view

所以我的问题是,我应该使用什么构造来进入代码,而不必刷新整个页面或调整窗口大小?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-05-30 01:39:57

为您的模块创建.run()函数,并在$rootScope上侦听事件$routeChangeSuccess

如下所示:

代码语言:javascript
复制
angular
  .module('YourApp')
  .run(runFn);

runFn.$inject = ['$rootScope','$window'];

function runFn($rootScope, $window){

  $rootScope.$on('$routeChangeSuccess', function(){
    angular.element($window).on('load resize', function () {
     //... Some Logic
    }
  })
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37512869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档