我想模仿knockout.js中的复杂模型:
function DefInfo(dfirst, dlast) {
this.dfirst = ko.observable(dfirst);
this.dlast = ko.observable(dlast);
}
function PaymentViewModel() {
var self = this;
self.pmt = ?? (where pmt.defInfo = DefInfo, pmt.contact = ContactInfo, etc
}
基本上我要做的就是使用ko.toJson(pmt)传回json;
这可能吗?
由于
答案 0 :(得分:0)
当然可以嵌套viewModel对象。
尝试类似:
function DefInfo(dfirst, dlast) {
this.dfirst = ko.observable(dfirst);
this.dlast = ko.observable(dlast);
}
function Payment(defInfo, contactInfo) {
this.defInfo = ko.observable(defInfo);
this.contactInfo = ko.observable(contactInfo);
}
function PaymentViewModel() {
var self = this;
self.pmt = ko.observable(new Payment(new DefInfo("a", "b"), new ContactInfo()));
}
如果你不需要它们可观察,你甚至可以做一些简单的事情:
function PaymentViewModel() {
var self = this;
self.pmt = {
defInfo: new DefInfo("a", "b"),
contact: new ContactInfo()
};
}
答案 1 :(得分:0)
好的 - 我尝试了你的代码,我无法在html中获得绑定权限。这就是我所拥有的:
<div class="panel panel-body`">
<fieldset>
<legend>Defendant Information</legend>
<div class="form-group">
<label for="dfirst">First Name:</label>
<input data-bind="text: dfirst" type="text" id="dfirst" />
</div>
<div class="form-group">
<label for="dlast">Last Name:</label>
<input data-bind="text: dlast" type="text" id="dlast" />
</div>
</fieldset>
<button data-bind="click: makePayment" class="btn btn-default">Make Payment</button>
</div>
当我输入值并单击makePayment按钮时 - 我检查pmt.defInfo的值,它们仍然是空白的。
感谢。