淘汰映射jquery

时间:2012-06-04 09:37:25

标签: jquery json knockout.js knockout-mapping-plugin

在我的剧本中,我有这个:

$('#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没有执行,这就是为什么我认为加载时字段为空...

可能是什么错误?

1 个答案:

答案 0 :(得分:0)

输入字段应使用'value'绑定而不是'text'绑定。如果未映射属性,您将在浏览器控制台中看到由knockout抛出的异常。