【发布时间】:2021-08-26 10:36:31
【问题描述】:
我正在尝试从 Ajax 回调中更新 Observable,使用...
function LocaleVM() {
const self = this;
self.Language = ko.observable("en");
self.Strings= ko.observable();
self.toggleLanguage = function () {
const lang = self.Language() === 'en' ? 'es' : 'en';
console.log(self.Language());
console.log(lang);
$.ajax({
url: `/${lang}`,
method: 'GET',
success: function (data, textStatus, xhr) {
self.Language(lang);
console.log(self.Language());
console.log(lang);
//===============================================
... update strings ...
},
error: function (xhr, textStatus, errorThrown) {
console.log(errorThrown);
}
});
}
}
这就是每次调用toggleLanguage 时的控制台输出...
en
es
es
es
这似乎在回调中更新得很好,但在外面却没有。这里似乎有什么问题?
【问题讨论】:
-
我认为是因为您使用的是
const lang,而不是const暗示它之后不能重新分配?也许尝试用var替换const看看是否有帮助