79

我正在尝试使用动态设置 div 宽度,ng-style但它没有应用样式。这是代码:

<div style="width: 100%;" id="container_fform" ng-controller="custController">
    <div style="width: 250px;overflow: scroll;">
        <div ng-style="myStyle">&nbsp;</div>
    </div>
</div>

控制器:

var MyApp = angular.module('MyApp', []);

var custController = MyApp.controller('custController', function ($scope) {
    $scope.myStyle="width:'900px';background:red";

});

我错过了什么?

小提琴链接:小提琴

4

2 回答 2

140

的语法ng-style并不完全如此。它接受键(属性名称)和值(它们应该采用的值,一个空字符串取消设置它们)的字典,而不仅仅是一个字符串。我想你想要的是这样的:

<div ng-style="{ 'width' : width, 'background' : bgColor }"></div>

然后在你的控制器中:

$scope.width = '900px';
$scope.bgColor = 'red';

这保留了模板和控制器的分离:控制器保存语义值,而模板将它们映射到正确的属性名称。

于 2013-11-29T13:50:43.537 回答
35

ngStyle接受地图:

$scope.myStyle = {
    "width" : "900px",
    "background" : "red"
};

Fiddle

于 2013-11-29T13:48:54.460 回答