根据范围变量应用 css 样式

Apply css style depending on scope variable

我正在尝试根据范围变量设置 css 属性。

基本上是这样的:

 <div ng-style="background: filters.area ? #f39c12 : #424242">

或者更像是:

<div ng-style="filters.area ? 'background:#f39c12' : 'background:#424242'">

甚至:

<div ng-style="{{filters.area ? 'background:#424242' : 'background:#ff0000'}}">

但是上面的 none 有效

background 值将由三元运算符设置 & 还使用 { & } 而不是 {{}} 插值。

基本上 ng-style 指令要求 JSON & 在内部它使用 element.css(JSON)

<div ng-style="{'background' : filters.area ? '#424242' : '#ff0000'}">

您需要一对“{}”。使用

可以轻松修复此代码
<div ng-style="{filters.area ? 'background:#424242' : 'background:#ff0000'}">

ng-style 指令中的表达式存在一些语法错误。试试这个方法,

HTML :

<div ng-controller="MainController">
    <div id="customControl" ng-style="filterarea ? {'background': '#f39c12'} : {'background':'#424242'}"></div>
</div>

javaScript : (angularjs)

angular.module("myapp", []).controller("MainController", ["$scope", function($scope){
    $scope.filterarea = false;
}]);

CSS :

#customControl{
    width : 100px;
    height : 100px;
    background-color : yellow;
}

jsFiddle

Fiddle: http://jsfiddle.net/jpk547zp/3/

如需有关 ng 样式检查的进一步帮助:https://docs.angularjs.org/api/ng/directive/ngStyle

<div ng-app="approvalApp">
    <div ng-controller="SimpleApprovalController" >
        <div ng-style="filters.area ? {'background-color' : '#424242'} : {'background-color' : '#ff0000'}">
            test data
        </div>
    </div>
</div>