Почему $timeout не работает при использовании внутри разрешения обещания?
Я пытаюсь показать пользователю сообщение, которое исчезнет через 6 секунд, используя угловой $timeout. К сожалению, я не смог заставить его работать вместе с angular-translate (который я использую для переводов).
Итак, этот код работает (без службы $translate):
this.showMessage = function(type, text) {
message.isVisible = true;
message.type = type;
message.text = text;
$timeout(this.hideMessage, 6 * 1000);
}
Но когда я выполняю вызов внутри ответа службы $translate, он этого не делает (я уже проверил, что обещание правильно выполнено):
this.showMessage = (type, translationId) {
$translate(translationId).then(function (text) {
//This works just fine.
message.isVisible = true;
message.type = type;
message.text = text;
//But hideMessage never gets called.
$timeout(this.hideMessage, 6 * 1000);
});
}
Может кто-нибудь помочь? Спасибо.