【问题标题】:angularjs filter using comparator with multiple filtersangularjs过滤器使用带有多个过滤器的比较器
【发布时间】:2017-12-15 17:15:46
【问题描述】:

我正在尝试制作一个 angularjs 过滤器。我正在过滤三个属性。前两个是比较器假,最后一个是比较器真。如果不制作自定义过滤器,这可能吗?我在下面尝试过,但它会引发错误。

|

 filter :
     {
        'PatientFullName' : vm.headerService.searchText,
        'Archived' : vm.headerService.Archived,
        'PhysicianID' : {vm.headerService.selectedPhysician.PhysicianID,true}
     }

这是整个html

<div class="col-sm-6 col-md-4" ng-repeat="patient in vm.patientlist | orderBy: vm.headerService.currentSort.orderBy:vm.headerService.currentSort.sortDescending
     | filter :
     {
        'PatientFullName' : vm.headerService.searchText,
        'Archived' : vm.headerService.Archived,
        'PhysicianID' : {vm.headerService.selectedPhysician.PhysicianID,true}
     }">

这是错误

angular.js:14794 错误:[$parse:syntax] 语法错误:令牌 '.'是 出乎意料,在表达式的第 263 列期待 [}] [vm.患者名单 |订购: vm.headerService.currentSort.orderBy:vm.headerService.currentSort.sortDescending |筛选 : { 'PatientFullName':vm.headerService.searchText, “存档”:vm.headerService.Archived, 'PhysicianID' : {vm.headerService.selectedPhysician.PhysicianID,true} }] 从 [.headerService.selectedPhysician.PhysicianID,true} 开始 }]。

【问题讨论】:

    标签: javascript angularjs angularjs-filter


    【解决方案1】:

    {vm.headerService.selectedPhysician.PhysicianID,true} 不是正确的对象。要通过comparator 的不同值执行过滤,您可以链式过滤:

    <div class="col-sm-6 col-md-4" ng-repeat="patient in vm.patientlist | orderBy: vm.headerService.currentSort.orderBy:vm.headerService.currentSort.sortDescending
     | filter :
     {
        'PatientFullName' : vm.headerService.searchText,
        'Archived' : vm.headerService.Archived
     }
     | filter : 
    {        
        'PhysicianID' : vm.headerService.selectedPhysician.PhysicianID
    }: true">
    

    但最好将其重写为控制器的方法。它将提高可读性:

    <div class="col-sm-6 col-md-4" 
     ng-repeat="patient in vm.patientlist | 
                orderBy: vm.headerService.currentSort.orderBy
                       : vm.headerService.currentSort.sortDescending
               |filter : vm.myFilteringMethod">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 2015-12-08
      相关资源
      最近更新 更多