当null为空时,AngularJS过滤器值例程不起作用

时间:2015-08-25 16:27:14

标签: javascript angularjs

我有一个表格,我希望能够根据用户输入的过滤字符串过滤显示的内容。我遇到的一个问题是字段可能为null,因此我的过滤器不起作用。

var quoteNameFilter = function () {

    return function (quotes, filterValue) {
        if (!filterValue) return quotes;

        var matches = [];
        filterValue = filterValue.toLowerCase();
        for (var i = 0; i < quotes.length; i++) {
            var quote = quotes[i];
            if (quote.rfq.toLowerCase().indexOf(filterValue) > -1 ||
                quote.comments.toLowerCase().indexOf(filterValue) > -1 ||
                quote.priority.name.toLowerCase().indexOf(filterValue) > -1 ||
                quote.customer.customerName.toLowerCase().indexOf(filterValue) > -1 ||
                quote.status.name.toLowerCase().indexOf(filterValue) > -1) {

                matches.push(quote);
            }
        }
        return matches;
    };
};

quote.comments可能为null,那么如何检查此例程中的值是否为空?

1 个答案:

答案 0 :(得分:2)

使用quote.comments运算符确保true&&值:

(quote.comments && quote.comments.toLowerCase().indexOf(filterValue) > -1) || ...