2015-08-03 5 views
0

У меня есть следующая функция в контроллере. Когда я пытаюсь добавить $ timeout, я получаю опорную ошибку, поскольку функция переключения появляется как не определенная. Я новичок в угловой. кто-нибудь знает, почему это произошло?ReferenceError: toggleTrash не определен

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

ответ

0

Я ответил с этим:

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

Angule's $ timeout - это всего лишь оболочка для window.setTimeout. Вы не можете передавать переменную вместе с функцией так, как вы пытаетесь. Вы можете сделать это только:

$timeout(toggleTrash, 3000); 

Может попробовать создать анонимное закрытие, так что значение card сохраняются, когда обратный вызов выполняется. Итак:

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

Вы получаете ссылочный ошибку, потому что вместо того, чтобы использовать toggleTrash, вы должны использовать $scope.toggleTrash.

И использовать $timeout как:

$timeout(function() { 
    $scope.toggleTrash(card); 
}, 3000); 
Смежные вопросы