2017-06-20 20 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