2017-06-20 17 views
0

我尝试使用$ FILTER。我输入来过滤名单paramater

"TO" : "DEL" 
"FROM" :"PNQ" 
"DEPART Date" : "10-01-2017" 

它应该显示一个输出。这一个

{ 
    "to_station_name": "Delhi", 
    "to_station": "DEL", 
    "from_station": "PNQ", 
    "from_station_name": "Pune", 
    "depart_time": "12:00AM", 
    "arrival_time": "4:00PM", 
    "PNR": "AL_201", 
    "flight_date": "10-01-2017", 
    "fare": "900" 
    }, 

这里是我的代码 https://plnkr.co/edit/k4FBxqufETslgYxm4zEx?p=preview

目前它没有显示任何东西,当我点击search按钮

$scope.searchClick =function(){ 
    if($scope.fromStation!='' && $scope.toStation!='' && $scope.departDate !=''){ 

    $scope.names = $filter('filter')($scope.defaultNames, function(item){ 
     var time1 = moment(item.flight_date, "DD-MM-YYYY"); 
     var time2 = moment($scope.departDate, "DD-MM-YYYY"); 
     return item.from_station_name === $scope.fromStation && 
     item.to_station_name === $scope.toStation && 
     time1.valueOf() == time2.valueOf() 

    }); 

    } 


} 
+0

您已经有工作答案在这里:https://stackoverflow.com/questions/44633805/why-filter-is-not-working-in-angular-js/44634085#44634085 – Rylyn

回答

0

重构你的$scope.searchClick()

$scope.searchClick = function() { 
    if ($scope.fromStation !== '' && $scope.toStation !== '' && $scope.departDate !== '') { 
    $scope.names = $filter('filter')($scope.defaultNames, function(item) { 
     var time1 = moment(item.flight_date, "DD-MM-YYYY"); 
     var time2 = moment($scope.departDate, "DD-MM-YYYY"); 
     var times = time1.valueOf() == time2.valueOf(); 
     $scope.fromStation = item.from_station_name; 
     $scope.toStation = item.to_station_name; 
     return $scope.fromStation, $scope.toStation, times; 
    }); 
    } 
}; 

正是有了您的return陈述的问题。

plnkr

+0

不工作请分享plunker – user944513

+0

它现在更新 – urbz

+0

你能解释一下你的答案吗?$ scope.fromStation = item.from_station_name; $ scope.toStation = item.to_station_name; 返回$ scope.fromStation,$ scope.toStation,times; – user944513

0

更改SearchClick功能如下

$scope.searchClick =function(){ 
    if($scope.fromStation!='' && $scope.toStation!='' && $scope.departDate !=''){ 

    $scope.names = $filter('filter')($scope.defaultNames, function(item){ 
     var time1 = moment(item.flight_date, "DD-MM-YYYY"); 
     var time2 = moment($scope.departDate, "DD-MM-YYYY"); 
     return item.from_station === $scope.fromStation && 
     item.to_station === $scope.toStation && 
     time1.valueOf() === time2.valueOf() 

    }); 

    } 


} 

而且你给输入错误,$ scope.departDate是MM/DD/YYYY格式,将您的输入更改为
“TO”:“DEL” “FROM”:“PNQ” “DEPART Date”:“01-10-2017”// 10th Jan 2017