Javascript 重复的角度重复
我使用角度,这是我的观点:Javascript 重复的角度重复,javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,我使用角度,这是我的观点: <div class="col-sm-6" ng-repeat="contact in service.contacts"> <label class="control-label mb10">{{contact.textDescription | decodeURIComponent}}</label> <select multiple="multiple" selectize
<div class="col-sm-6" ng-repeat="contact in service.contacts">
<label class="control-label mb10">{{contact.textDescription | decodeURIComponent}}</label>
<select multiple="multiple" selectize>
<option>{{contact.value}}</option>
</select>
</div>
也许需要应用一些过滤器,或者?根据对您所提到内容的理解,我认为以下答案中提到的过滤器将帮助您实现您的愿望
您可以使用ng选项分组并显示唯一值。您可以使用模块的
uniqFilter
。用法:
集合|唯一:'property'
或嵌套的.property
别名:
uniq
示例:JS:
function MainController ($scope) {
$scope.orders = [
{ id:1, customer: { name: 'John', id: 10 } },
{ id:2, customer: { name: 'William', id: 20 } },
{ id:3, customer: { name: 'John', id: 10 } },
{ id:4, customer: { name: 'William', id: 20 } },
{ id:5, customer: { name: 'Clive', id: 30 } }
];
}
<th>Customer list:</th>
<tr ng-repeat="order in orders | unique: 'customer.id'" >
<td> {{ order.customer.name }} , {{ order.customer.id }} </td>
</tr>
HTML:
function MainController ($scope) {
$scope.orders = [
{ id:1, customer: { name: 'John', id: 10 } },
{ id:2, customer: { name: 'William', id: 20 } },
{ id:3, customer: { name: 'John', id: 10 } },
{ id:4, customer: { name: 'William', id: 20 } },
{ id:5, customer: { name: 'Clive', id: 30 } }
];
}
<th>Customer list:</th>
<tr ng-repeat="order in orders | unique: 'customer.id'" >
<td> {{ order.customer.name }} , {{ order.customer.id }} </td>
</tr>
客户列表:
{{order.customer.name},{{order.customer.id}
结果:
客户列表:-约翰10
-威廉20
-Clive 30通过
文本描述将联系人分组应该可以解决您的问题。试着这样做:
if(contact.textDescription is duplicate) {
contact.value.addTo(contact.textDescription which already exists)
}
html:
示例-GroupBy筛选器
{{key}}
{{contact.value}}
script.js:
var app = angular.module("app", []);
app.controller("MainController", function ($scope) {
$scope.service = {};
$scope.service.contacts = [{
"textDescription": "td1",
"value": "1"
}, {
"textDescription": "td2",
"value": "2"
}, {
"textDescription": "td3",
"value": "3"
}, {
"textDescription": "td1",
"value": "4"
}, {
"textDescription": "td3",
"value": "5"
}, {
"textDescription": "td1",
"value": "6"
}];
});
app.filter('groupBy', function () {
var results={};
return function (data, key) {
if (!(data && key)) return;
var result;
if(!this.$id){
result={};
}else{
var scopeId = this.$id;
if(!results[scopeId]){
results[scopeId]={};
this.$on("$destroy", function() {
delete results[scopeId];
});
}
result = results[scopeId];
}
for(var groupKey in result)
result[groupKey].splice(0,result[groupKey].length);
for (var i=0; i<data.length; i++) {
if (!result[data[i][key]])
result[data[i][key]]=[];
result[data[i][key]].push(data[i]);
}
var keys = Object.keys(result);
for(var k=0; k<keys.length; k++){
if(result[keys[k]].length===0)
delete result[keys[k]];
}
return result;
};
});
var-app=angular.module(“app”,[]);
应用控制器(“主控制器”,功能($scope){
$scope.service={};
$scope.service.contacts=[{
“文本描述”:“td1”,
“值”:“1”
}, {
“文本描述”:“td2”,
“值”:“2”
}, {
“文本描述”:“td3”,
“值”:“3”
}, {
“文本描述”:“td1”,
“值”:“4”
}, {
“文本描述”:“td3”,
“值”:“5”
}, {
“文本描述”:“td1”,
“值”:“6”
}];
});
app.filter('groupBy',函数(){
var结果={};
返回函数(数据、键){
如果(!(数据和键))返回;
var结果;
如果(!this.$id){
结果={};
}否则{
var scopeId=此。$id;
如果(!results[scopeId]){
结果[scopeId]={};
此.$on(“$destroy”,函数(){
删除结果[scopeId];
});
}
结果=结果[范围ID];
}
for(结果中的var groupKey)
结果[groupKey]。拼接(0,结果[groupKey]。长度);
对于(var i=0;i