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