$ timeout中的“控制器为”语法

时间:2015-03-31 11:05:55

标签: javascript angularjs pointers reference

今天我试图解决使用"控制器作为" $ 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);

2 个答案:

答案 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()(带括号)调用一个函数,但它不是函数。