【发布时间】:2015-01-20 20:53:52
【问题描述】:
Angular-Resource 文档说参数:
如果任何参数值是一个函数,则每次请求需要获取参数值时都会执行(除非该参数被覆盖)。
不幸的是,这对我不起作用,该函数仅在资源初始化时调用一次。
我的情况: 我有一个全局应用程序状态,您可以在应用程序的顶部导航中选择它。此状态会影响大多数调用中的查询参数。 (例如通话有效的日期)。我在服务中维护这个全局状态。
我的服务(模型层)如下所示:
function($resource, ApplicationState) {
return $resource('test/:_id', {
date: ApplicationState.getCurrentTime()
}, {
get: {
method: 'GET'
}
});
}
我希望ApplicationState.getCurrentTime() 在每次获取调用时都会被调用。它只被调用一次。
我创建了一个 plunkr 作为示例。打开浏览器调试控制台可以看到ApplicationState.getCurrentTime() 只被调用一次,而不是每次单击按钮时。
http://plnkr.co/edit/qeoIUuzFCqnQNdnYp5ZX?p=preview
我做错了什么?有没有更好的方法将动态参数注入某些资源?我知道请求拦截器的概念,但我只在某些服务上需要这个,而不是全部。
感谢您的帮助!
【问题讨论】:
-
我向 Angular 团队打开了一个错误报告,以了解这是一个错误还是对文档的误解:github.com/angular/angular.js/issues/10803
标签: angularjs angular-resource angularjs-resource