JSON을 통해 반환 된 데이터에 대해 계산 열을 만들려고합니다. 나는 그것을 작동시킬 수 없다. NAN
값을 얻거나 열이 존재하지 않는다고 말합니다.JSON에서 계산 된 열 사용
자바 스크립트 : 나는 수정 또는 속도를 변경 한 후에는 CommissionAmount를 다시 계산하는
function commissionsViewModel() {
var self = this;
self.commissions = ko.observableArray();
ko.applyBindings(self, $("#commissions").get(0));
function LoadcommissionsFromServer() {
$.post(
'/commissions/data',
function (data) {
var results = ko.observableArray();
ko.mapping.fromJS(data, {}, results);
for (var i = 0; i < results().length; i++) {
self.commissions.push(results()[i]);
};
},
'json'
)
}
LoadcommissionsFromServer();
self.ComissionAmount = ko.computed(
function() {
return this.CommissionableAmount * this.Rate * this.Modifier;
});
return self;
}
var viewModel = commissionsViewModel();
무엇을 달성하려고하는 것입니다. 내가 수동으로 필드를 매핑하는 경우
편집
나는 속도 및 수정이 관찰 가능한 (당신은 자신의 선언을 제공하지 않았다)이다 가정합니다 NaN
function Commission(data) {
this.Status = ko.observable(data.Status);
this.OriginalCommissionCode = ko.observable(data.OriginalCommissionCode);
this.NewCommissionCode = ko.observable(data.NewCommissionCode);
this.InvoiceNumber = ko.observable(data.InvoiceNumber);
this.CustomerID = ko.observable(data.CustomerID);
this.CommissionableAmount = ko.observable(data.CommissionableAmount);
this.Modifier = ko.observable(data.Modifier);
this.Rate = ko.observable(data.Rate);
this.SalesAmount = ko.observable(data.SalesAmount);
this.NonSalesAmount = ko.observable(data.NonSalesAmount);
this.CommissionAmount = ko.computed(function() {
return this.CommissionableAmount * this.Rate * this.Modifier;
});
}
function commissionsViewModel() {
var self = this;
self.commissions = ko.observableArray();
$.post(
'/commissions/data',
function (allData) {
var mappedTasks = $.map(allData, function (item) { return new Commission(item) });
self.commissions(mappedTasks);
},
'json'
);
}
ko.applyBindings(new commissionsViewModel());
[Stack Overflow가 모든 것을 읽지 않을 것입니다] (http://meta.stackexchange.com/a/129787/172496) –
HTML을 제거하기 위해 게시물을 편집했습니다. 정말, 왜 ko.computed가 작동하지 않는지 알아 내야합니다. – Travis