class language {
constructor() {
this.phrases = {};
this.isPhrasesLoaded = false;
this.currentPage = undefined;
this.language = 'RU';
}
loadPhrases(after) {
$.getJSON('./js/pages/phrases.json', function(msg) {
this.phrases = msg;
this.isPhrasesLoaded = true;
console.dir(this.phrases);
console.log('----PHRASES LOADED----');
after();
});
}
}
$(document).ready(function() {
let PHRASES = new language();
PHRASES.loadPhrases(function() {
console.log(PHRASES.phrases);
});
});
Недавно тут писал, про это. Странная дичь происходит. this.phrases не устанавливается. Вернее устанавливается внутри loadPhrases -> getJSON А глобально - нет. Даже если вручную в консоль ввести console.dir(PHRASES.phrases), уже после загрузки, т.е. самостоятельно. Выдается пустой объект. Почему так? Что с этим сделать?
Т.е. при отладке вы можете увидеть, внутри $.getJSON переменная присваивается, всё ок. Далее логом выдается этот объект. Потом идет надпись ---PHRASES LOADED---. И далее, я уже хочу взаимодействовать с этим объектом. Однако он оказывается пустой. Странное что-то. Впервые такое за 5 лет.
Так-же пробовал после загрузки делать так
setTimeout(function() {
console.log(PHRASES.phrases);
}, 10000);
Ничего не помогает и не работает.
