我有以下内容:
.directive('resizer', ['$window', function ($window) {
return {
restrict: 'A',
link: function (scope, elem, attrs) {
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
。
所以我的问题 - 我应该使用什么构造来进入代码而不必刷新整个页面或调整窗口大小?
感谢。
答案 0 :(得分:0)
为您的模块创建.run()
函数,并在$routeChangeSuccess
上听取事件$rootScope
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
}
})
}