Установка стиля css из контроллера angularjs

Я был на этом в течение 30 минут и не могу понять, что я делаю неправильно...

HTML:

<div ng-controller="main">
    <div ng-style="mapheight">
        <google-map center="center" zoom="zoom" style="height: inherit;"></google-map>
        </div>
</div>

CONTROLLER:

angular.module('csApp.controllers', ["google-maps"]).
    controller("main", function($scope) {
        $scope.mapheight = "{'min-height':" + getHeight() + "px;}";
        $scope.center = {
            latitude: 45,
            longitude: -73
        };
        $scope.zoom = 8;

        function getHeight() {
            return (window.innerHeight * .70);
        }
    })

Никакой стиль не применяется к моему div вообще.

Я могу заставить его передать переменную, когда я помещаю {{mapheight}} в свой шаблон, но затем мне нужно передать его в свойство стиля, что, по-видимому, не так, как я должен это делать.

Что я здесь делаю неправильно? Это мой первый день с angular, и я почти плачу, потому что я не могу изменить размер div.

Спасибо!

вот изменение моего контроллера:

  $scope.mapHeight = { 'min-height': getHeight() };

Ответы

Ответ 1

ng-style принимает привязку к объекту, поэтому $scope.mapheight должен быть объектом, а не строкой. то есть.

$scope.mapheight = {
    'min-height': getHeight() + "px"
};

Атрибут ng-style принимает выражение, поэтому размещение строковой версии непосредственно в HTML

ng-style="{'min-height': '40px'}"

будет работать так, как он будет оцениваться, и объект будет создан. Значение ng-style="mapheight" оценивается как значение mapheight от $scope, поэтому $scope.mapheight должен быть объектом.