나는이 작업을 수행하려고 :Knockoutjs + ko.mapping.fromJS + 계산 된 필드 계산 계산하지는
myData = {weight: 100, anotherWeight: 120.55}; // when my data is plain json - all work
$.when($.getJSON(url, {param}, function(data) {myData = data}).
//when i got it from ajax - dosn't work
then(function(){
var taskModel = function(data)
{
var self = this;
ko.mapping.fromJS(data, {}, self);
this.computedWeight = ko.computed(function() { return self.weight() +
' ---- ' +
self.anotherWeight() + ' kg'; });
}
ko.applyBindings(new taskModel(myData));
});
<input type="text" data-bind="value: weight"/><br/>
<input type="text" data-bind="value: anotherWeight"/><br/>
<span data-bind="text: computedWeight"></span>
첫 번째 시간 - 로딩 후 - computedWeight 바로 계산이다. 그러나 weight 나 anotherWeight 필드를 변경할 때 - computedWeight는 변경되지 않습니다.
감사합니다. 올바른 데이터가 서버에 반환되어
의
ko.mapping.fromJSON()
를 시도? 성공 콜백에서 반환되는 것은 무엇입니까? 제발 [jsfiddle] (http://jsfiddle.net/zEfRj/4/) – nemesv고마워. jsfiddle - http://jsfiddle.net/EfRj/4/ - 모든 작업. 하지만 제 경우에는 계산 된 필드가 계산되지 않습니다. 나는 아약스 응답을 조사하려고 노력할 것이다. – awzster