在我的剧本中,我有这个:
$('#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 EditReservation,但字段为空。
我确信每个字段的数据绑定都是正确的,因为它在正确映射时匹配返回的json数据,
问题是,ko.applyBindings没有执行,这就是为什么我认为加载时字段为空...
可能是什么错误?
答案 0 :(得分:0)
输入字段应使用'value'绑定而不是'text'绑定。如果未映射属性,您将在浏览器控制台中看到由knockout抛出的异常。