ng-options 和唯一过滤器不显示 angular.js [英] ng-options and unique filter not displaying angular.js

查看:23
本文介绍了ng-options 和唯一过滤器不显示 angular.js的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的 javascript 中,我有一个数组

In my javascript I have an array

$scope.quoteList =        
    [
        {
            select: false,
            laymansDescription: "Nathan",
            quoteNumber: "ING-70440-21",
            version: "02",
            quoteDate: "Feb 5,2013",
            expirationDate: "Aug 5,2013",
            internalNotes: "This quote is using test data",
        },
        {
            select: false,
            laymansDescription: "Mitch",
            quoteNumber: "ING-70440-01",
            version: "02",
            quoteDate: "Feb 5,2013",
            expirationDate: "Aug 5,2013",
            internalNotes: "This quote is using test data",
        },
        {
            select: false,
            laymansDescription: "Stephen",
            quoteNumber: "ING-70440-01",
            version: "02",
            quoteDate: "Feb 5,2013",
            expirationDate: "Aug 5,2013",
            internalNotes: "This quote is using test data",
        }
    ];

我正在尝试制作一个只显示唯一的quoteNumbers的选择器,即.ING-70440-21 和 ING-70440-01.但是,当我尝试在 angular 中使用 'unique' 选项时,没有任何显示.

And I am trying to make a selector that will only show unique quoteNumbers ie. ING-70440-21 and ING-70440-01. However when I try to use the 'unique' option in angular, nothing is showing up.

<select class="form-control" ng-options="quote.quoteNumber for quote in quoteList | unique:'quoteNumber'" ng-model="quoteModel1" />

它在没有唯一标签的情况下工作正常.我究竟做错了什么?我对 angular 很陌生,所以它可能非常简单.

It works fine without the unique tag. What am I doing wrong? I pretty new to angular so it might be something really simple.

推荐答案

AngularJS 没有内置的 unique 过滤器.你可以做这样的事情来制作你自己的:

AngularJS does not have a built-in unique filter. You can do something like this to make one of your own:

app.filter('unique', function() {
    return function(input, key) {
        var unique = {};
        var uniqueList = [];
        for(var i = 0; i < input.length; i++){
            if(typeof unique[input[i][key]] == "undefined"){
                unique[input[i][key]] = "";
                uniqueList.push(input[i]);
            }
        }
        return uniqueList;
    };
});

这篇关于ng-options 和唯一过滤器不显示 angular.js的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆