在我的脚本中,我有这个:
$('#divForm').load('../Reservation/Edit #EditReservation', function () {
$('#divForm').slideDown(500), function () { };
var viewModel = {};
var id = JSON.stringify(rowid);
$.post("/Reservation/JsonEdit", { jsonId: id }, function (data) {
var trueData = JSON.stringify(data);
alert(trueData);
viewModel.model = ko.mapping.fromJSON(trueData);
alert("chkpt1");
ko.applyBindings(viewModel);
alert("chkpt2");
});
});
此脚本运行到"chkpt1"并且不执行:ko.applyBindings(viewModel); 警报("chkpt2");
我正在此 csHTML 中使用此脚本:
<div id="EditReservation" >
<div data-bind="foreach: model.Room">
<div style="margin-right: 160px; float:left">
<div>
EMPLOYEE NUMBER:
<div>
<input type="text" data-bind="text: EmpNumber" /></div>
</div>
<div>
ROOM:
<div>
<input type="text" data-bind="text: Room" /></div>
</div>
<div>
DATE:
<div>
<input type="text" data-bind="text: Date" /></div>
</div>
</div>
<div style="margin-top: 40px;">
<div>
START TIME:
<div>
<input type="text" data-bind="text: StartTime" /></div>
</div>
<div>
END TIME:
<div>
<input type="text" data-bind="text: EndTime" /></div>
</div>
<div>
NOTES:
<div>
<input type="text" data-bind="text: Notes" /></div>
</div>
</div>
</div>
div 编辑保留将显示,但字段为空。
我确信每个字段的数据绑定都是正确的,因为它与正确映射时返回的 JSON 数据匹配,
问题是,ko.applyBindings 没有执行,这就是为什么我认为加载时字段为空......
可能出现哪些错误?
输入字段应使用"值"绑定而不是"文本"绑定。如果属性可能没有映射,您将在浏览器控制台中看到由 KNOCKOUT 引发的异常。