我有以下代码...
$timeout(function(test){
console.log(test.num);
},0, true, {num:9});
但是,test始终为null,因此我应该如何传递变量?
您的代码是正确的。但是,您正在运行不支持4th参数的AngularJS的旧版本。您至少需要版本1.4.0。
通常,您不必显式传递参数,因为它们是在封闭范围中定义的,并且在闭合中可见。这也可以:
var param = {num:9};
$timeout(function(){
console.log(param.num);
});
如果您需要显式传递参数(通常是因为必须保留一些变化的变量的值),则@ Pankaj-Parkar的答案提供了一个很好的解决方法。但是,我更喜欢这样:
$timeout((function(test) {
return function() { console.log(test.num) }
})({num: 9}));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句