AngularJS中的窗口调整大小事件

时间:2015-11-20 17:31:42

标签: javascript angularjs resize window-resize

我一直在谷歌上搜索一段时间,到目前为止,我发现了如何使用window resize指令调整窗口大小,但在我的代码中我使用window.innerHeight来获取初始高度。我可以随时使用它,除非我需要一个事件来改变它。 JavaScript window resize event因某些原因不会为我开火。这是我在控制器内部的代码:

function adjustH() {
    var bodyElem = document.getElementsByTagName('body')[0];
    var topP = window.getComputedStyle(bodyElem, null).getPropertyValue('padding-top');
    topP = topP.substring(0, topP.indexOf("px"));
    var bottomP = window.getComputedStyle(bodyElem, null).getPropertyValue('padding-bottom');
    bottomP = bottomP.substring(0, bottomP.indexOf("px"));
    vm.h = window.innerHeight - topP - bottomP - 20;
}

window.onresize = function(event) {
    adjustH();
}

任何人都可以告诉我是否不可能这样做,我必须走指令路线?或者如果可能的话请告诉我我错过了什么。

2 个答案:

答案 0 :(得分:1)

如果您正在使用angularJS,您是否将$ window作为依赖项传递给您的控制器。

之前我遇到过类似的问题,那是因为没有设定去世。 希望这会有所帮助。

答案 1 :(得分:-1)

阅读完陈述后的评论

  

我的画布也设置为height="{{vm.h}}",但只有在鼠标悬停时才会调整大小

您似乎需要调用$scope.$apply()(或$rootScope.$apply())才能更新元素的height属性。

如果你从指令/控制器添加更多代码,我可以给你一个更详细的答案。