我创建了一个使用$ resource工厂的工厂,我想根据我当前的URL自定义传递给$ resource的url参数。 这是我的代码示例:
MyApp.factory("provider_services", ['$resource', function($resource) {
var factory = {};
var ProviderService = $resource("/providers/:provider/provider_services/", { format: 'json', provider: "pro" });
factory.services = ProviderService.query();
return factory;
}])
我目前的网址是:somedomain.com/providers/pro/services /
我想从url中取出“pro”部分(理想情况下可以是其他任何东西)并将它在提供者参数中传递给资源(在我当前的示例中,您可以看到它是硬编码的)。 类似的东西:
cur_provider = {get the current value from the url}
var ProviderService = $resource("/providers/:provider/provider_services/", { format: 'json', provider: cur_provider });
*我知道我可以用某种方式使用$ location,但我似乎无法在我的provider_services工厂中访问它。
谢谢!
答案 0 :(得分:0)
您可以使用$ routeParams来执行此操作。它看起来像这样:
angular.module('app').controller("ExampleController", ['$resource', '$routeParams', 'SomeService',
function($resource, $routeParams, SomeService) {
//The id here is whatever you name your route variable.
cur_provider = $routeParams.provider;
var ProviderService = $resource("/providers/:provider/provider_services/", { format: 'json', provider: cur_provider });
}
]);