Скажем, у меня есть следующий код:Knockoutjs наблюдаемым и JQuery расширяет функции
var Klass = function(){
var self = this;
this.value = 123;
this.update = function(){
$.ajax({
url: '/whatever',
async: false,
success: function(data){
$.extend(self, data);
}
});
}
}
Давайте предположим, '/ все' возвращает этот JSON объект:
{value: 234}
И когда я это сделать:
var obj = new Klass();
obj = ko.mapping.fromJS(obj);
console.log(obj);
Мы все знаем, что obj
теперь является наблюдаемым нокаутом.
И я бегу это:
obj.update();
console.log(obj);
То, что я обнаружил, есть значение obj
не получает переопределяется как простое значение 234, но остался в качестве наблюдаемого свойства.
Мои вопросы:
1) почему?
2) Как сделать обновление, как я хотел.
UPDATE: вызов ajax не является асинхронным.
Да, я буду называть отображение снова после –
В таком случае. См. Мой обновленный ответ. –
Привет, что касается обратного вызова, на самом деле я использую asycn: false, я просто набрал этот код намного проще здесь перед сном. Но спасибо за это. –