我想创建一个可以在多个控制器中使用的服务。该服务本质上只是返回我在几个页面中使用的JSON数据。我想要两个控制器,一个用于“事件页面”,另一个用于“事件详细信息”页面。我希望查询返回“事件”页面上的整个数据对象,并过滤到“事件详细信息”页面的一个事件。我的逻辑是我可以将$ routeParams作为“事件详细信息页面”上的查询函数的参数传递。
我的控制器看起来像这样:我目前只有两个路由的一个控制器,我想要一个服务和两个控制器。一个控制器返回整个数据集,一个只返回过滤后的数据集。
app.controller('eventController', ['$scope', '$resource', '$routeParams' function ($scope, $resource, $routeParams) {
var Hc = $resource('/api/hc');
Hc.query(function(results){
$scope.events = results;
});
$scope.events = []
}]);
我的$ routeProvider语句在这里:
.when('/events', {
templateUrl: 'templates/events.html',
controller: 'eventController'
})
.when('/events/:eventName', {
templateUrl: 'templates/eventdetail.html',
controller: 'eventController'
})
答案 0 :(得分:0)
你可以这样做:
app.factory("HC", ["$resource", function($resource) {
return {
API: $resource('/api/hc')
}
}]);
然后在你的控制器中:
app.controller('eventController', ['$scope', 'HC', '$routeParams' function ($scope, HC $routeParams) {
HC.API.query(function(results) {
$scope.events = results
});
}]);