Angularjs需要为角轮询器的每个刻度改变一个参数
下面是angular poller的演示: 我需要能够将一个参数传递到工厂中,以构造一个动态url,以便使用newTime参数调用“greet” 如何修改poller.get()以传入“newTime”Angularjs需要为角轮询器的每个刻度改变一个参数,angularjs,factory,poller,Angularjs,Factory,Poller,下面是angular poller的演示: 我需要能够将一个参数传递到工厂中,以构造一个动态url,以便使用newTime参数调用“greet” 如何修改poller.get()以传入“newTime” poller1 = poller.get(greet, {action: 'jsonp_get', delay: 1000}); .factory('greet', function ($resource) { return $resource('https://www.exampl
poller1 = poller.get(greet, {action: 'jsonp_get', delay: 1000});
.factory('greet', function ($resource) {
return $resource('https://www.example.com?time=' + newTime,
{
},
{
jsonp_get: { method: 'JSONP' }
});
})
/--演示--/
没有使用角度轮询器,但似乎您应该能够通过属性argumentsArray
:
var poller1 = poller.get(greet, {
action: 'jsonp_get',
delay: 1000,
argumentsArray: [{
time: newTime
}]
});
因此,在检索轮询器时,将计算数组argumentsArray
编辑:澄清之后,您似乎需要为轮询的每个勾选改变一个参数,而不是在获得轮询器时。您可以通过在请求拦截器中添加参数来解决此问题:
// define interceptor
app.factory('requestInterceptor', function() {
return {
'request': function(request) {
// if needed, wrap the following in a condition
request.params = request.params || {};
request.params.time = moment();
return request;
}
}
})
// register interceptor
app.config(function ($httpProvider) {
$httpProvider.interceptors.push('requestInterceptor');
})
我已经尝试过这个方法,但是工厂返回函数()似乎只计算一次,这样时间就不会改变var poller1=poller.get(greet,{action:'jsonp_get',delay:1000,argumentsArray:[{time:moment().format('yyyyy-MM-DD HH:MM:ss')})<代码>时间值将在每次检索轮询器时发生变化,即对于每个
轮询器。get
调用。是否要在轮询的每个勾号上更改url?在轮询的每个勾号上都是。您可以为该用例使用拦截器。请参见编辑。
// define interceptor
app.factory('requestInterceptor', function() {
return {
'request': function(request) {
// if needed, wrap the following in a condition
request.params = request.params || {};
request.params.time = moment();
return request;
}
}
})
// register interceptor
app.config(function ($httpProvider) {
$httpProvider.interceptors.push('requestInterceptor');
})