2016-07-13 8 views
0

これは簡単だと思いますが、jsonファイルでこれを試してみました。 そうなことは、イムは今、このJSONファイルのような全体のJSONリストの取得ということです、workers.json角度、jsonフェッチリストとフィルタ

[{ 
    “workarea”: [“office”, “transport”, “IT”], 
    “picture”: “some url”, 
    “name”: “Mark janken”, 
    “age”: 30, 
    “location”: “holland”, 
}] 

そして、私の角度コントローラ内のイムは今、この権利をやって、それが動作します。

myApp.controller('MainController', function($scope, $http) { 

    $http.get('workers.json') 
    .success(function(data){ 
    $scope.workers = data; 
    }); 

}); 

しかし、私はクライアント側でこのようなフィルタとリストを取得する必要がありますか? とは、ちょうどこのように、複数のフィルタを持っている: /取得-労働者場所=:?場所

これをaproachする方法がわからないし。

いくつかのヘルプやリンクが必要です。ありがとう。

+0

待って、得意先は労働者からの差ですか?はいの場合は、コードを追加してください – varit05

+0

Ups、申し訳ありません、同じファイルではなく、データを持つjsonファイルが1つだけです。私はちょうどそれを今編集しました。 – user3503728

+0

@ user3503728これを正しく実行するには、ルータのパラメータにアクセスするために必要なURLから動的データを取得する必要があります。いくつかのコード例については私の答えをチェックし、何かお気軽にお尋ねください –

答えて

1

それを取得した後、あなたは、このクライアント側をしたい場合は、プロジェクト内のルータを導入する必要があります。

$stateProvider 
    .state('workers', { 
    url: '/workers/:myFilter', 
    ... 
    }) 

そして$ stateParamsを使用して、コントローラにあなたがこれを達することができます:あなたは、ルータを導入した後

だから

はあなたがあなたの状態/ルート設定でこのようなものを持っています(私はui-routerを好みます)お使いのコントローラがこのようになります。例えば、単に$stateParams.myFilter

のようなパラメータ:

myApp.controller('MainController', 
    function($scope, $http, filterFilter) { 

     $http.get('workers.json') 
     .success(function(data){ 
      $scope.workers = data; 
      $scope.filteredWorkers = 
      filterFilter($scope.workers, { 
       location:$stateParams.myFilter 
      }); 
     }); 

}); 

docsで詳細を確認してください。本当に簡単です。

+0

ありがとう:-)問題は解決しました。 – user3503728

+0

よろしくお願いいたします。 –

0

サーバーから値を取得している場合は、サーバー側から処理できます。クエリ文字列を使用してサーバー側のデータをフィルタリングします。

しかし、あなたはJSONファイルからリストをgetingされている場合は、リストをフィルタリングする必要がありますが

myApp.controller('MainController', function($scope, $http, filterFilter) { 

    $http.get('workers.json') 
    .success(function(data){ 
     $scope.workers = data; 
     $scope.filteredWorkers = filterFilter($scope.workers, {location:'holland'}); 
    }); 

}); 
+0

はい。 jsonファイルからのリスト、サーバーなし、これに対するバックエンド – user3503728

+0

@ user3503728これを達成する方法を示すコードサンプルを追加しました –