根据数组值angularjs赋值ng-class
assign ng-class value according to array values angularjs
我的回复是这样的:
$scope.users = [{
name: 'joseph',
queue:[
{number:'111',status:'Paused'},
{number:'345',status:'Not In Use'},
{number:'342',status:'Not In Use'}],
}];
在我看来,如果响应中的队列数组在任何索引处包含 status = Paused,我将 class 设置为已暂停。我认为我在下面执行此操作的方式不是正确的方式,因为万一队列数组包含 3 个以上的对象,那么我的代码将无法正确分配 class。
这是我的代码:
<div ng-repeat="user in users>
<span class="badges badges-lg" ng-class="{'paused': user.queue[0].status === 'Paused' || user.queue[1].status === 'Paused' || user.queue[2].status === 'Paused'}">111</span>
</div>
我想要一个解决方案,仅当与队列数组中的 "number":"111"
对应的状态为已暂停时才应用已暂停的 class。
我的意思是不使用 user.queue[0].status === 'Paused' || user.queue[1].status === 'Paused' || user.queue[2].status === 'Paused'
,我只需要一行代码来检查队列数组中 "number":"111" 对应的状态是否已暂停。
我该怎么做?
您可以在 ng-class
中调用控制器函数来动态检查条件和 return 您需要的 class:
var app = angular.module('myApp', []);
app.controller('MainCtrl', ['$scope', function($scope) {
$scope.users = [{
name: 'joseph',
queue: [{
number: '111',
status: 'Paused'
},
{
number: '345',
status: 'Not In Use'
},
{
number: '342',
status: 'Not In Use'
}
],
}];
$scope.checkPaused = function(user) {
var isPaused = user.queue.find(({
number
}) => number === '111');
if(isPaused){
return 'paused'
}
}
}]);
.paused{
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MainCtrl">
<div ng-repeat="user in users">
<span class="badges badges-lg" ng-class="checkPaused(user)">111</span>
</div>
</div>
我的回复是这样的:
$scope.users = [{
name: 'joseph',
queue:[
{number:'111',status:'Paused'},
{number:'345',status:'Not In Use'},
{number:'342',status:'Not In Use'}],
}];
在我看来,如果响应中的队列数组在任何索引处包含 status = Paused,我将 class 设置为已暂停。我认为我在下面执行此操作的方式不是正确的方式,因为万一队列数组包含 3 个以上的对象,那么我的代码将无法正确分配 class。 这是我的代码:
<div ng-repeat="user in users>
<span class="badges badges-lg" ng-class="{'paused': user.queue[0].status === 'Paused' || user.queue[1].status === 'Paused' || user.queue[2].status === 'Paused'}">111</span>
</div>
我想要一个解决方案,仅当与队列数组中的 "number":"111"
对应的状态为已暂停时才应用已暂停的 class。
我的意思是不使用 user.queue[0].status === 'Paused' || user.queue[1].status === 'Paused' || user.queue[2].status === 'Paused'
,我只需要一行代码来检查队列数组中 "number":"111" 对应的状态是否已暂停。
我该怎么做?
您可以在 ng-class
中调用控制器函数来动态检查条件和 return 您需要的 class:
var app = angular.module('myApp', []);
app.controller('MainCtrl', ['$scope', function($scope) {
$scope.users = [{
name: 'joseph',
queue: [{
number: '111',
status: 'Paused'
},
{
number: '345',
status: 'Not In Use'
},
{
number: '342',
status: 'Not In Use'
}
],
}];
$scope.checkPaused = function(user) {
var isPaused = user.queue.find(({
number
}) => number === '111');
if(isPaused){
return 'paused'
}
}
}]);
.paused{
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MainCtrl">
<div ng-repeat="user in users">
<span class="badges badges-lg" ng-class="checkPaused(user)">111</span>
</div>
</div>