gpt4 book ai didi

angularjs - 在服务中使用 $routeParams

转载 作者:行者123 更新时间:2023-12-04 18:42:43 27 4
gpt4 key购买 nike

我正在尝试将查询参数附加到从 URL 获取的所有 API 调用中。

factory('Post', function ($resource, $routeParams) {
return $resource('api/posts', {customer_id: $routeParams.customerId});
})

这在第一次使用 Post 服务时有效,但在第二次注入(inject)时它已经被初始化并且正在使用第一个客户 ID,即使 URL 已更改。

我如何使这项工作按预期进行?

最佳答案

因为服务是单例的。
这就是你得到这种行为的原因。

我建议不要将 $routeParams 作为服务的初始化参数注入(inject)。
相反,将其注入(inject) Controller ,然后使用 $routeParams 中的值作为参数调用服务的函数。

代码可能是这样的:

factory('Post', function ($resource) {
return {
doPost: function(customerId) {
$resource('api/posts', {customer_id: customerId});
}
};
});

//...
//in some controller
Post.doPost($routeParams.customerId)

关于angularjs - 在服务中使用 $routeParams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938163/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com