ionic \ angular 2: строка не обновляется после установленного времени ожидания

0

Я пытаюсь обновить строку (класса\tag) с помощью setimeout (или любого другого обратного вызова), без успеха, он отлично работает с кнопкой (когда пользователь нажимает кнопку для обновления), но это не так, t работать с настройкой JS. не могли бы вы рассказать мне, что мне здесь не хватает?

Вот пример кода, который у меня есть:

export class Page1 {
  constructor() {
this.greet = "Hi, ";
setTimeout(function(){
  this.greet = "Hello, ";
  alert("Done");
 }, 3000);
  }
}

как вы можете видеть в этом простом коде, я вижу предупреждение "Готово" через 3 секунды, но приветствие не обновляется, нужно ли его каким-то образом обновить?

Спасибо за помощь!

Эран.

Теги:
angular
ionic2

1 ответ

6
Лучший ответ

По-вашему, this внутренний вызов callTimeout не является экземпляром класса Page1. Для сохранения контекста вам необходимо использовать функцию стрелки:

setTimeout(() => { // <=== 
  this.greet = "Hello, ";
  alert("Done");
}, 3000);

См. Эту ссылку для получения более подробной информации https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Lexical_this

  • 0
    Отлично! Это работает сейчас, спасибо. @yurzui
  • 0
    Пожалуйста! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню