好吧,我觉得这很简单,但我还没试过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;
});
});
但是,如果我应该在客户端获取过滤器和这样的列表怎么办? 并有多个过滤器,就像这样: /获取工位置=:?位置
不确定如何接受这个。
希望得到一些帮助或链接。感谢。
答案 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'});
});
});