【问题标题】:angular filter not working as expected角度过滤器未按预期工作
【发布时间】:2016-06-21 12:45:06
【问题描述】:

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"}];
}

【问题讨论】:

    标签: javascript jquery angularjs angularjs-ng-repeat angularjs-filter


    【解决方案1】:

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

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

    Working Fiddle


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

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

    【讨论】:

    • 谢谢,但问题是什么,为什么它随机工作
    • 当我使用多个过滤器时,它打破了自定义过滤器示例list in doctorallist = (arr | programListingFilter:map | filter:{DegreeName='doctoral'}) 这里programListingFilter:map 返回一些我需要由博士过滤的列表
    • 什么是programListingFilter:map
    • 检查我添加的代码。 map 是索引数组 [0,2,3,2] 等
    • 抱歉忽略这是我修复的其他问题。感谢您的提醒。
    猜你喜欢
    • 2011-05-22
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多