【发布时间】:2016-12-03 06:07:54
【问题描述】:
我是淘汰赛 js 的新手,我觉得我可能不理解这里的一些东西。我基本上有一个 MVC 复选框,选中时将更新另一个依赖于其他字段计算的字段。除了复选框之外,我可以更新所有其他字段的总金额字段,但我不确定我做错了什么。我怀疑这是因为我没有传入self,但我不确定如何将其与最终等式中的条件值一起传入,但我不确定为什么会出现这种情况要么。也许有人可以对此有所了解。
我还注意到,如果我将计算转换为变量并返回最终变量,初始值会正确显示,但最终字段不会更新。这是有原因的还是我做错了什么?
这是我正在使用的复选框标记
<div class="form-group-sm">
<label for="bookingType">International Property</label>
<div class="checkbox">
@Html.EditorFor(model => model.IsInternationalProperty, new { @id = "internationalProperty", @value = true, @data_bind = "checked: internationalProperty" })
<label style="width: 200px; text-align: left">Select if it is outside the US</label>
</div>
</div>
这是我的 knockoutjs 视图模型
var viewModel = function (data) {
var self = this;
self.internationalProperty = ko.observable();
self.vendorBookingAmount = ko.observable(2.00);
self.transactionFeesDue = ko.observable(0.00);
self.transactionFeesWaived = ko.observable(0.00);
self.iceBookingFees = ko.observable(0.00);
self.vacationCashRedeemed = ko.observable(0.00);
self.pointsDiscount = ko.observable(0.00);
debugger;
var international = (self.internationalProperty() == true) ? 0.05 : 0;
self.memberBalance = ko.computed(function () {
return (Number(self.vendorBookingAmount()) + Number(self.transactionFeesDue()) -
Number(self.transactionFeesWaived()) + Number(self.iceBookingFees()) -
Number(self.vacationCashRedeemed()) - Number(self.pointsDiscount())) +
(Number(self.vendorBookingAmount()) + Number(self.transactionFeesDue()) -
Number(self.transactionFeesWaived()) + Number(self.iceBookingFees()) -
Number(self.vacationCashRedeemed()) - Number(self.pointsDiscount()))*international;
}, self);
};
ko.applyBindings(new viewModel());
【问题讨论】:
标签: asp.net-mvc checkbox knockout.js observable computed-observable