ionic \ angular 2:settimeout后字符串不会更新

时间:2016-06-06 05:38:11

标签: javascript angularjs angular ionic2

我尝试使用settimeout(或任何其他回调)更新字符串(类\ tag),但没有成功,它与按钮完美配合(当用户点击时按钮更新),但它不适用于JS settimeout。 你能告诉我我在这里错过了什么吗?

以下是我的代码示例:

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

正如您在这个简单的代码中看到的那样,我可以看到警报"完成" 3秒后,问候语没有更新,我应该以某种方式刷新它吗?

感谢您的帮助!

叶兰。

1 个答案:

答案 0 :(得分:6)

在你的方式this里面,setTimeout回调不是Page1类的实例。您需要使用箭头功能来保留上下文:

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

有关详情https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Lexical_this

,请参阅此链接