2017-07-14 19 views
0

現在、システムに最新の最新のファイルを表示するカスタムフィルタを作成しようとしています。記載されたデータをフィルタリングするために、AngularJSを使用しています。日付をJavaScriptの文字列と比較するにはどうすればよいですか?

私の問題は、私のの日付のデータがjsonファイルの文字列として保存されているため、それをフィルタリングする方法がわかりません。

私の考えは、今日の日付を変数として保存し、それをjsonファイルの保存日付と比較することで、カスタムフィルタを作成することでした。ここで

は私のJSONファイルがをどのように見えるかです:

{ 
    "data": [ 

     { 
      "title": "Something Exciting", 
      "description": "A TV show about something really exciting.", 
      "date": " 06/2017", 
      "link": "../pdf/whoReadsBooksAnyway.pdf" 
     }, 
     { 
      "title":"Stranger Things", 
      "description":"Getting back that 80's Steven King Vibe", 
      "date": "05/2017", 
      "link": "../pdf/AllAlongTheWatchTower.pdf" 
     } 
    ] 
} 

私は、最新のdateフィールドで項目を表示する必要があるので、私は、カスタムフィルタの作成を開始:

app.filter('dateFilter', function($scope){ 

     $scope.getDatetime = new Date(); 

     var aaa = "../../../views/TvShows/json/shows.json" 
     $http.get(aaa).then(function maybe(response, date){ 
       $scope.data = reseponse.data.data; 
      }); 

     if($scope.getDatetime < $scope.data.date){ 
      return $scope.myFilter; 
     } else{ 
      console.log("it didn't work"); 
     } 
    }); 

アイデアをフィルタの後ろにhttpリクエストで日付をキャッチし、それを現在の日付である$scope.GetDatetimeと比較することです。私は本当にフィルターを構築する方法がわかりません。 xstatsxは、最初のhttp取得要求から返されたオブジェクトのうち、$scopeです。私のHTMLで

var xurlx = '../../../views/TvShows/json/shows.json' 
      $http.get(xurlx).then(function(response, data){ 
       $scope.xstatsx = response.data.data; 
      }); 

私は最新の日付をフィルタリングして表示するために、これを使用しています:

<div class="well well-lg" style="display: inline-block;" ng-repeat="n in xstatsx | orderBy: '-date'" ng-show='0 == $index'> 

それが最新にのみ最新 記載されているを示しているので、どのように私は私の出力をフィルタリングすることができますファイル?

+0

新しいDate()>新しい日付( "01 /" +文字列+ "T00:00") –

+0

@Jonaswそれは私をたくさん助けません.. – ZombieChowder

+0

このオブジェクトを表示することができます 'xstatsx' –

答えて

1

これを試してみてください:

reseponse.data.data.forEach((item)=>{ 
    let date = new Date(), 
    split = item.date.split("/"); 
    date.setDate(1); 
    date.setMonth(+(split[0]) - 1); 
    date.setYear(split[1]); 
    item.sort = date; 
}); 

をし、HTMLでORDERBYフィルタソート・キーを使用し

<div ng-repeat="n in xstatsx | orderBy : 'sort' " ></div> 
+0

これを私のフィルタコードに挿入するのはどこですか?または私のコントローラに直接挿入しますか? – ZombieChowder

+0

はいコントローラ – fahad

+0

に挿入されています。再送信が定義されていません。それを使用する前に$スコープする必要がありますか?私はタイプミスを見た... OMG – ZombieChowder

関連する問題