ReferenceError: toggleTrash is not defined

ReferenceError: toggleTrash is not defined

我的控制器中有以下功能。当我尝试添加 $timeout 时,我收到参考错误,因为切换功能未定义。我是 angular 的新手。有谁知道为什么会这样?

$scope.toggleTrash = function(card) {
    card.clickedtrash = card.clickedtrash ? false : true;
    if (card.clickedtrash == true) {
        $timeout(toggleTrash(card), 3000);
    }
}  

Angular 的 $timeout 只是 window.setTimeout 的包装器。您不能按照您尝试的方式将变量与函数一起传递。你只能这样做:

$timeout(toggleTrash, 3000);

也许可以尝试创建一个匿名闭包,以便在回调执行时保留 card 的值。所以:

$timeout(function() {
  toggleTrash(card);
}, 3000);

您收到引用错误是因为您不应使用 toggleTrash,而应使用 $scope.toggleTrash

并使用 $timeout 如:

$timeout(function () {
    $scope.toggleTrash(card);
}, 3000);

我是这样回答的:

$scope.toggleTrash = function(card) {
    card.clickedtrash = true;
    $timeout(function(){card.clickedtrash = false}, 4000);
};