Лучшим способом было бы посмотреть значение innerHeight
из $window
и присвоить его переменной с вашего контроллера:
$scope.$watch(function(){ return $window.innerHeight;} , function(newVal, oldVal){
$ctrl.windowHeight = newVal;
});
Но оно не обновится, пока не будет вызван дайджест, длячтобы его обновить, вам нужно привязать событие к resize
и вызвать дайджест:
angular.element($window).bind('resize', function () {
$scope.$apply();
});
Вот рабочая скрипка
После этого вы сможетесделать:
<div class="modal-body" style="overflow: auto;" ng-style="{$ctrl.windowHeight: wh + 'px'}">
Поскольку вы не используете контроллер для привязки своих значений, а своей области действия, ваш код может выглядеть следующим образом:
$scope.$watch(function(){ return $window.innerHeight;} , function(newVal, oldVal){
$scope.windowHeight = newVal;
});
и:
<div class="modal-body" style="overflow: auto;" ng-style="{windowHeight: wh + 'px'}">