因此,我有这个嵌套数组,我无法修改其结构。我想检查一个键/值对是否存在,如果存在,请向相关元素添加相应的类。AngularJS ng-class检查是否存在嵌套的键/值对,然后将值作为类
我一直在尝试使用表达式的变化:
ng-class="{ 'active' : data.indexOf('"name":"john"') >= 0 }"
不过我的表情是有点更复杂,我怕这太过分了使用就是这样。还有使用两个以上级别的嵌套引号的问题。
以下是使用类似的结构数组小提琴什么我的工作:
http://jsfiddle.net/5tvmL2Lg/2/
HTML:
<body ng-app="myModule">
<div ng-controller="myController">
<div ng-repeat="hero in heroes">
<div ng-class="{ 'weight-\'hero.stats.indexOf('\'type\':\'weight\'').value\'' : hero.stats.indexOf('\'type\':\'weight\'') >= 0 }">
hello
</div>
</div>
</div>
</body>
JS:
var myModule = angular.module('myModule', []);
myModule.controller('myController', ['$scope', function($scope) {
$scope.heroes = [{
"firstname" : "clark",
"lastname" : "kent",
"stats" : [
{
"type" : "height",
"value" : "6'2"
},
{
"type" : "weight",
"value" : 220
},
{
"type" : "hair",
"value" : "brown"
}
]},
{
"firstname" : "bruce",
"lastname" : "wayne",
"stats" : [
{
"type" : "height",
"value" : "6'1"
},
{
"type" : "hair",
"value" : "black"
}
]},
{
"firstname" : "peter",
"lastname" : "parker",
"stats" : [
{
"type" : "height",
"value" : "5'11"
},
{
"type" : "weight",
"value" : 180
},
{
"type" : "hair",
"value" : "auburn"
}
]}];
}]);
在目标的最终目标是为“c”添加一个名为例如“weight-220”的类百灵肯定的“div,”bruce wayne“div的上课,以及peter parker div的”weight-180“。
我知道我的问题是令人费解,但任何帮助,将不胜感激... :)
好的,非常感谢Dr. Cool,这正是我想要的,而且它比我想象的要简单......现在我觉得很愚蠢,但无论如何非常感谢您的帮助! – jeanmarc
btw我可以问你重量变量是什么吗? – jeanmarc
哦,哎呀......我打算这样做:''返回'weight-'+ weight''但忘记这么做,只是返回值本身。你可以删除''weight =''行。 –