#javascript #ionic-framework
#javascript #ionic-framework
Вопрос:
это может быть глупый вопрос, но я новичок, поэтому, пожалуйста, помогите мне в этом
я хочу получить доступ к общедоступному свойству и изменить его значение внутри функции setTimeout, ниже приведен мой код.
export class AppComponent implements OnInit {
public selectedIndex = 0;
public appPages = [
{
title: 'Trash',
url: '/folder/Trash',
icon: 'trash'
},
{
title: 'Spam',
url: '/folder/Spam',
icon: 'warning'
}
];
public showSplash = true;
constructor(
private platform: Platform,
private splashScreen: SplashScreen,
private statusBar: StatusBar,
) {
this.initializeApp();
}
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
setTimeout(function() {
//showSplash = false ;
console.log('set timeout worked');
}, 300);
});
}
консоль.журнал работает внутри setTimeout мне нужно изменить значение showSplash в этом блоке, пожалуйста, помогите, как я могу это сделать
Ответ №1:
Я думаю, что это угловой и машинописный код. Вы можете использовать функцию со стрелкой.
https://developer.mozilla.org/tr/docs/Web/JavaScript/Reference/Functions/Arrow_functions
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
setTimeout(() => {
this.showSplash = false;
console.log('set timeout worked');
}, 300);
});
}
Комментарии:
1. работал отлично, не могли бы вы объяснить, почему это не сработало, я имею в виду, что для ссылки на «это» внутри функции в angular — TS нам нужно использовать функции со стрелками? пожалуйста, подтвердите
2. Таким образом, при использовании
this
вfunction
синтаксисе он ссылается на объектWindow
. Когда используется функция arrow , если вы проверяете выходные данные javascript, она создает определение, подобноеvar _this = this;
в коде, и фактически использует эту переменную_this
вместоthis
setTimeout
функции.@ SikanderNawaz