今天我试图解决使用"控制器作为" $ timeout 中的语法。我尝试使用对象做一个"假指针"。不幸的是,它无法正常工作。如果不使用 $ scope ,有人知道如何解决这个问题吗?
this.shakeNotValid = {val: true};
function objChange (obj) {
console.log(obj.val);
obj.val = false;
console.log(obj.val);
}
$timeout(objChange(this.shakeNotValid), 400);
答案 0 :(得分:2)
使用Angular时,我建议您使用变量作为“this”,以防止范围错误。
var scope = this;
scope.shakeNotValid = {val: true};
function objChange (obj) {
console.log(obj.val);
obj.val = false;
console.log(obj.val);
}
$timeout(function(){objChange(scope.shakeNotValid)}, 400);
答案 1 :(得分:1)
您的$timeout
中有错误,您忘记了匿名函数:
var scope = this;
scope.shakeNotValid = {val: true};
$timeout(function() {
objChange(scope.shakeNotValid)
} , 400);
函数$timeout
在第一个参数中等待一个函数。 onChange()
(带括号)调用一个函数,但它不是函数。