Angularjs 基于外部ng repeat中的值筛选内部ng repeat
在下面的代码中,我想显示不同的标记,然后对于每个标记,我想过滤内部ng repeat中的值。这可能吗?或者我必须创建一个不同标签的单独数组吗Angularjs 基于外部ng repeat中的值筛选内部ng repeat,angularjs,Angularjs,在下面的代码中,我想显示不同的标记,然后对于每个标记,我想过滤内部ng repeat中的值。这可能吗?或者我必须创建一个不同标签的单独数组吗 <!doctype html> <html ng-app> <head> <script src="http://code.angularjs.org/1.2.9/angular.min.js"></script> <script src="http://code.ang
<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/1.2.9/angular.min.js"></script>
<script src="http://code.angularjs.org/1.2.9/angular-animate.min.js"></script>
</head>
<body>
<div ng-init="servers = [
{name:'UK001', os:'win 2008', tag:'prod'},
{name:'UK002', os:'win 2008', tag:'prod'},
{name:'UK003', os:'win 2003', tag:'Dev'},
{name:'UK004', os:'win 2008', tag:'Dev'}
]">
<div ng-repeat="server in servers ">
<h1> {{tag}}</h1>
<ul >
<li ng-repeat="server in servers | filter : {tag :server.tag } ">
<h3>{{server.name}} {{server.os}} </h3>
</li>
</ul>
</div>
</div>
</body>
</html>
{{tag}}
-
{{server.name}{{server.os}
这是一个插销:
您应该创建标记对象,如下所示:
现在,您可以像这样迭代该对象:
使用此方法,所有内容都将重复多次。我希望将服务器分组到标记下。我想我必须创建一个单独的标签数组作为我的外循环。谢谢Ilan,我无法看到Plunker链接,我想我需要一个帐户。
var servers = [
{name:'UK001', os:'win 2008', tag:'prod'},
{name:'UK002', os:'win 2008', tag:'prod'},
{name:'UK003', os:'win 2003', tag:'Dev'},
{name:'UK004', os:'win 2008', tag:'Dev'}
];
$scope.tags = servers.reduce(function(tags,server){
var tag = server.tag;
if(! tags[tag] ) tags[tag] = [];
delete server.tag; // we don't need it anymore
tags[tag].push(server);
return tags;
},{});
<div ng-repeat="(tag, servers) in tags ">
<h1> {{tag}}</h1>
<li ng-repeat="server in servers">
<h3>{{server.name}} {{server.os}} </h3>
</li>
</div>
{
"prod": [
{
"name": "UK001",
"os": "win 2008"
},
{
"name": "UK002",
"os": "win 2008"
}
],
"Dev": [
{
"name": "UK003",
"os": "win 2003"
},
{
"name": "UK004",
"os": "win 2008"
}
]
}