【发布时间】:2017-05-29 20:53:34
【问题描述】:
我正在使用 Ionic 2 编写一个应用程序,并且进展顺利,但我只是挂断了一些我认为可能是一个简单的解决方法。
屏幕上有文字,5 秒后我想更新屏幕上的文字。我似乎无法访问 setInterval 函数中的变量。
constructor(public nav: NavController, private navParams: NavParams, private getserver: GetServerService, storage: Storage) {
this.storage = storage;
this.storage.get('userAuth').then((name) => {
if(name.id === undefined) {
this.nav.setRoot(LoginPage); //kick back to login if no userdata
}else{
let options = {timeout: 120000, enableHighAccuracy: true};
navigator.geolocation.getCurrentPosition((position) => {
this.driverStatus = 'hi';
setInterval(()=> {
this.driverStatus = 'Updated Text';
}, 2000);
},
(error) => {
console.log(error);
},
options
);
}
});
}
}
当我运行应用程序时,它会显示文本“Hello”,但不会将文本更新为“Updated Text”。控制台正确显示输出。
我尝试了来自Ionic2 function setInterval can't get a parameter 的建议,但这些建议也没有奏效。我的其他失败尝试如下。
var that = this;
setInterval(function() {
that.userText = 'Updated Text';
}, 2000);
和
setInterval(()=> {
this.userText = 'Updated Text';
}, 2000);
【问题讨论】: