Era*_*evi 0 javascript angularjs ionic2 angular
我正在尝试使用settimeout(或任何其他回调)更新字符串(类\ tag),但没有成功,它与按钮完美配合(当用户点击按钮进行更新时),但它没有'使用JS settimeout.你能告诉我我在这里失踪了吗?
这是我的代码示例:
export class Page1 {
constructor() {
this.greet = "Hi, ";
setTimeout(function(){
this.greet = "Hello, ";
alert("Done");
}, 3000);
}
}
Run Code Online (Sandbox Code Playgroud)
正如你在这个简单的代码中看到的,我可以在3秒后看到警报"完成",但问候语没有更新,我应该以某种方式刷新它吗?
谢谢你的帮助!
伊兰.
以你的方式this在setTimeout内部回调不是Page1类的实例.您需要使用箭头功能来保留上下文:
setTimeout(() => { // <===
this.greet = "Hello, ";
alert("Done");
}, 3000);
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅此链接https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Lexical_this