我已经在这30分钟了,无法弄清楚我做错了什么......
HTML:
<div ng-controller="main">
<div ng-style="mapheight">
<google-map center="center" zoom="zoom" style="height: inherit;"></google-map>
</div>
</div>
控制器:
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}}放在我的模板中时,我可以通过变量传递它,但是我必须将它传递给style属性,这显然不是我应该怎么做的。
我在这里做错了什么?这是我有角度的第一天,我几乎流泪,因为我甚至无法调整div。
谢谢!
这是我的控制器的变化:
$scope.mapHeight = { 'min-height': getHeight() };
答案 0 :(得分:32)
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
需要成为对象。