从控制器角度设置CSS样式

前端之家收集整理的这篇文章主要介绍了从控制器角度设置CSS样式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经在这个30分钟,不知道我做错了什么…

HTML

  1. <div ng-controller="main">
  2. <div ng-style="mapheight">
  3. <google-map center="center" zoom="zoom" style="height: inherit;"></google-map>
  4. </div>
  5. </div>

控制器:

  1. angular.module('csApp.controllers',["google-maps"]).
  2. controller("main",function($scope) {
  3. $scope.mapheight = "{'min-height':" + getHeight() + "px;}";
  4. $scope.center = {
  5. latitude: 45,longitude: -73
  6. };
  7. $scope.zoom = 8;
  8.  
  9. function getHeight() {
  10. return (window.innerHeight * .70);
  11. }
  12. })

根本没有风格适用于我的div.

当我将{{mapheight}}放在我的模板中时,我可以通过变量,但是我必须将其传递给style属性,这显然不是我应该怎么做的.

我在这里做错了什么?这是我第一天有角度,我几乎流泪,因为我甚至不能调整大小.

谢谢!

这是我的控制器的变化:

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

解决方法

ng-style需要一个对象绑定,所以$scope.mapheight应该是一个对象而不是一个字符串.即
  1. $scope.mapheight = {
  2. 'min-height': getHeight() + "px"
  3. };

ng-style属性采用一个表达式,因此将字符串版本直接放在HTML中

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

将工作,因为它将被评估,并将创建一个对象.设置ng-style =“mapheight”被评估为从$scope获取mapheight的值,因此$scope.mapheight需要成为一个对象.

猜你在找的CSS相关文章