Angular,json获取列表和过滤器

时间:2016-07-13 08:47:48

标签: javascript angularjs json

好吧,我觉得这很简单,但我还没试过json文件。 所以我现在正在检索一个像这个json文件的整个json列表:workers.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;
    });

});

但是,如果我应该在客户端获取过滤器和这样的列表怎么办? 并有多个过滤器,就像这样: /获取工位置=:?位置

不确定如何接受这个。

希望得到一些帮助或链接。感谢。

2 个答案:

答案 0 :(得分:1)

如果你想做这个客户端,你需要在你的项目中引入路由器。

所以在介绍路由器之后(我更喜欢ui-router

您的州/路线配置中会有类似的内容:

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

然后在使用$ stateParams的控制器中,您可以像$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中查看更多内容,非常简单。

答案 1 :(得分:0)

如果它从服务器获取值,则可以是来自服务器端的句柄。使用查询字符串过滤服务器端的数据。

但是如果要从json文件中获取列表,则必须在检索完列表后对其进行过滤

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

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

});