angular 过滤器未按预期工作

angular filter not working as expected

fiddle

在下面的代码中,它适用于两个过滤器。例如,如果我给

<li ng-repeat="list in arr | filter:DegreeName='masters'">

<li ng-repeat="list in arr | filter:DegreeName='certificate'">

我得到了意想不到的结果。可能是一些愚蠢的错误,但我无法弄清楚。

html

<div ng-controller="MyCtrl">
    <li ng-repeat="list in arr | filter:DegreeName='masters'">
    {{list.Name}}-{{list.DegreeName}} - {{list.DegreeCode}}{{list.URL}}
    </li>
</div>

JS

var myApp = angular.module('myApp',[]);

//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});

function MyCtrl($scope) {
alert();
    $scope.arr = [{"URL":"/online-degrees/certificate-nursing-education","NavKey":"certificate-nursing-education","Name":"Nursing Education","AOS":"Nursing","DegreeName":"certificate","DegreeCode":"CERT","LearningFormat":"Structured","DegreeTitle":"Post-Masters Certificate"}];
}

您应该以 JSON 格式指定要匹配的数据。

<li ng-repeat="list in arr | filter: {DegreeName: 'masters'}">

Working Fiddle


如果你想过滤那些与文本完全匹配的值,你可以将相等性检查值传递给true。但正如我所见,解决方案的第一部分适合您的情况。

<li ng-repeat="list in arr | filter: {DegreeName: 'masters'}: true">