通过表达式应用 ng-class 时如何正确组合字符串和变量?
How to correctly combine strings and variables when applying ng-class via an expression?
当我的应用程序初始化时,ng-class
的以下实现按预期工作并且正确应用了 class 名称。但是,当 person.status
的值在 运行 时间内发生变化时,class 保持不变。
这是我的代码:
ng-class="{ 'avatar--{{ person.status }}' : myBool }"
如何更改格式,以便当 person.status
的值发生变化时,我的 class 也会发生变化?
示例:如果在应用程序初始化时将person.status
设置为online
,则应用的class为avatar--online
。但是,如果他们的状态在当前会话中更改为 offline
,则 class 仍然是 avatar--online
。
我没有尝试在 ng-class 的 class 名称部分使用 angular 表达式。但你可以通过这个实现实现你想要的
ng-class="{'avatar--online': person.status == 'online',
'avatar--offline': person.status == 'offline'}"
基本上您可以在 ng-class 实现中设置两个条件。
希望对您有所帮助。
如果您能找到使用 'mybool' 的方法,试试这个:
ng-class="'avatar--' + person.status"
工作代码片段:
var app = angular.module('myapp', []);
app.controller('mycontroller', function($scope) {
$scope.colors = ['blue', 'green'];
$scope.color = $scope.colors[0];
});
.mydiv {
width: 200px;
height: 50px;
background-color: grey;
}
.prefix--blue {
background-color: blue;
}
.prefix--green {
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myapp" ng-controller="mycontroller">
<select ng-model="color" ng-options="c for c in colors"></select>
<div class="mydiv" ng-class="'prefix--'+color"></div>
</div>
当我的应用程序初始化时,ng-class
的以下实现按预期工作并且正确应用了 class 名称。但是,当 person.status
的值在 运行 时间内发生变化时,class 保持不变。
这是我的代码:
ng-class="{ 'avatar--{{ person.status }}' : myBool }"
如何更改格式,以便当 person.status
的值发生变化时,我的 class 也会发生变化?
示例:如果在应用程序初始化时将person.status
设置为online
,则应用的class为avatar--online
。但是,如果他们的状态在当前会话中更改为 offline
,则 class 仍然是 avatar--online
。
我没有尝试在 ng-class 的 class 名称部分使用 angular 表达式。但你可以通过这个实现实现你想要的
ng-class="{'avatar--online': person.status == 'online',
'avatar--offline': person.status == 'offline'}"
基本上您可以在 ng-class 实现中设置两个条件。
希望对您有所帮助。
如果您能找到使用 'mybool' 的方法,试试这个:
ng-class="'avatar--' + person.status"
工作代码片段:
var app = angular.module('myapp', []);
app.controller('mycontroller', function($scope) {
$scope.colors = ['blue', 'green'];
$scope.color = $scope.colors[0];
});
.mydiv {
width: 200px;
height: 50px;
background-color: grey;
}
.prefix--blue {
background-color: blue;
}
.prefix--green {
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myapp" ng-controller="mycontroller">
<select ng-model="color" ng-options="c for c in colors"></select>
<div class="mydiv" ng-class="'prefix--'+color"></div>
</div>