$timeout 是 Angular 的 window.setTimeout 包装器。当然,就像 setTimeout 一样,它支持向超时 fn 传递附加参数。
来自 AngularJS API:
$timeout([fn], [delay], [invokeApply], [Pass]);
[fn](功能)是你的功能
[delay](数字)延迟(以毫秒为单位)
[调用应用](boolean) 默认为 true,如果为 true,则 fn 在 $apply 内运行,如果为 false,则跳过模型脏检查。
[Pass]附加参数!这就是你想要的!
你的代码应该是这样的:
polling_interval = 1000;
var poll = function(param1, param2){
//Execution code
$timeout(poll, polling_interval, true, param1, param2);
};
poll(param1, param2);
这是将参数传递给超时 fn 的正确方法。希望这个对你有帮助。
编辑:此功能于 2015 年 1 月 22 日 (v1.4.1) 添加,在该版本之前,正确的方法是:
polling_interval = 1000;
var poll = function(param1, param2){
//Execution code
$timeout(poll.bind(null, param1, param2), polling_interval);
};
poll(param1, param2);