Javascript AngularJS:ng重复(返回单个值)
大家好Javascript AngularJS:ng重复(返回单个值),javascript,angularjs,if-statement,ng-repeat,Javascript,Angularjs,If Statement,Ng Repeat,大家好 我有: <tr ng-repeat="x in list"> .....<td>{{x.Name}}</td> 就目前而言,一切正常。 但是如果“Name”已经存在于这个表中,我希望这个表只返回我一次值。我需要的是这种观点: a 因为“Name”拥有很多“a”值 我希望我的问题足够准确,因为我是AngularJS的新手。 非常感谢。 EDIT1:我的控制器视图: myApplicationModule.controller('controller
我有:
<tr ng-repeat="x in list">
.....<td>{{x.Name}}</td>
就目前而言,一切正常。但是如果“Name”已经存在于这个表中,我希望这个表只返回我一次值。我需要的是这种观点:
a
因为“Name”拥有很多“a”值
我希望我的问题足够准确,因为我是AngularJS的新手。
非常感谢。
EDIT1:我的控制器视图: myApplicationModule.controller('controllertable',['$scope','$routeParams',函数($scope,$routeParams) { $scope.list=列表; }]); 它引用了一个文件.json:
var list = [
{
...
"Name" = "a",
...
}
您可以注册自定义筛选器
angular.module('yourApp.filters', [])
.filter('distinct', function() {
return function (list) {
var distinctList = new Array();
var j = 0;
for (var i = 0; i < list.length; i++) {
var x = list[i];
if (! containsName(distinctList, x.Name)) {
distinctList[j] = list[i];
j++;
}
}
return distinctList;
}
});
function containsName(list, name) {
for (var i = 0; i < list.length; i++) {
if (list[i].Name == name) {
return true;
}
}
return false;
}
在ng repeat语句中,只需写下:
<table>
<tr ng-repeat="x in list | distinct">
<td>{{x.Name}}</td>
</tr>
</table>
{{x.Name}
您可以注册自定义筛选器
angular.module('yourApp.filters', [])
.filter('distinct', function() {
return function (list) {
var distinctList = new Array();
var j = 0;
for (var i = 0; i < list.length; i++) {
var x = list[i];
if (! containsName(distinctList, x.Name)) {
distinctList[j] = list[i];
j++;
}
}
return distinctList;
}
});
function containsName(list, name) {
for (var i = 0; i < list.length; i++) {
if (list[i].Name == name) {
return true;
}
}
return false;
}
在ng repeat语句中,只需写下:
<table>
<tr ng-repeat="x in list | distinct">
<td>{{x.Name}}</td>
</tr>
</table>
{{x.Name}
您可以注册自定义筛选器
angular.module('yourApp.filters', [])
.filter('distinct', function() {
return function (list) {
var distinctList = new Array();
var j = 0;
for (var i = 0; i < list.length; i++) {
var x = list[i];
if (! containsName(distinctList, x.Name)) {
distinctList[j] = list[i];
j++;
}
}
return distinctList;
}
});
function containsName(list, name) {
for (var i = 0; i < list.length; i++) {
if (list[i].Name == name) {
return true;
}
}
return false;
}
在ng repeat语句中,只需写下:
<table>
<tr ng-repeat="x in list | distinct">
<td>{{x.Name}}</td>
</tr>
</table>
{{x.Name}
您可以注册自定义筛选器
angular.module('yourApp.filters', [])
.filter('distinct', function() {
return function (list) {
var distinctList = new Array();
var j = 0;
for (var i = 0; i < list.length; i++) {
var x = list[i];
if (! containsName(distinctList, x.Name)) {
distinctList[j] = list[i];
j++;
}
}
return distinctList;
}
});
function containsName(list, name) {
for (var i = 0; i < list.length; i++) {
if (list[i].Name == name) {
return true;
}
}
return false;
}
在ng repeat语句中,只需写下:
<table>
<tr ng-repeat="x in list | distinct">
<td>{{x.Name}}</td>
</tr>
</table>
{{x.Name}
试试这个
创建以下筛选器
app.filter('unique', function() {
return function(list, keyname) {
var output = [],
keys = [];
angular.forEach(list, function(item) {
var key = item[keyname];
if(keys.indexOf(key) === -1) {
keys.push(key);
output.push(item);
}
});
return output;
};
});
像这样使用它
<table>
<tr ng-repeat="x in list | unique: 'name'">
<td>{{x.name}}</td>
</table>
{{x.name}
试试这个
创建以下筛选器
app.filter('unique', function() {
return function(list, keyname) {
var output = [],
keys = [];
angular.forEach(list, function(item) {
var key = item[keyname];
if(keys.indexOf(key) === -1) {
keys.push(key);
output.push(item);
}
});
return output;
};
});
像这样使用它
<table>
<tr ng-repeat="x in list | unique: 'name'">
<td>{{x.name}}</td>
</table>
{{x.name}
试试这个
创建以下筛选器
app.filter('unique', function() {
return function(list, keyname) {
var output = [],
keys = [];
angular.forEach(list, function(item) {
var key = item[keyname];
if(keys.indexOf(key) === -1) {
keys.push(key);
output.push(item);
}
});
return output;
};
});
像这样使用它
<table>
<tr ng-repeat="x in list | unique: 'name'">
<td>{{x.name}}</td>
</table>
{{x.name}
试试这个
创建以下筛选器
app.filter('unique', function() {
return function(list, keyname) {
var output = [],
keys = [];
angular.forEach(list, function(item) {
var key = item[keyname];
if(keys.indexOf(key) === -1) {
keys.push(key);
output.push(item);
}
});
return output;
};
});
像这样使用它
<table>
<tr ng-repeat="x in list | unique: 'name'">
<td>{{x.name}}</td>
</table>
{{x.name}
您的控制器看起来怎么样?为什么不在控制器端确保每个名称在x中只出现一次?控制器看起来怎么样?为什么不在控制器端确保每个名称在x中只出现一次?控制器看起来怎么样?为什么不在控制器端确保每个名称在x中只出现一次?控制器看起来怎么样?为什么不在控制器端确保每个名字在x中只出现一次呢?所以,谢谢你们的回答。我在controller.js的顶部添加了自定义过滤器。$scope中的数组列表仍然是相同的$scope.list=list
,它引用了.json文件,我刚刚从我最初的写作中删除了$routeParams
。最后,我在ng重复结束时添加了| distinct
,我的所有数据都消失了:/因此,感谢您的回答。我在controller.js的顶部添加了自定义过滤器。$scope中的数组列表仍然是相同的$scope.list=list
,它引用了.json文件,我刚刚从我最初的写作中删除了$routeParams
。最后,我在ng重复结束时添加了| distinct
,我的所有数据都消失了:/因此,感谢您的回答。我在controller.js的顶部添加了自定义过滤器。$scope中的数组列表仍然是相同的$scope.list=list
,它引用了.json文件,我刚刚从我最初的写作中删除了$routeParams
。最后,我在ng重复结束时添加了| distinct
,我的所有数据都消失了:/因此,感谢您的回答。我在controller.js的顶部添加了自定义过滤器。$scope中的数组列表仍然是相同的$scope.list=list
,它引用了.json文件,我刚刚从我最初的写作中删除了$routeParams
。最后,我在ng重复结束时添加了| distinct
,所有数据都消失了:/