0

私のスクリプトでは、これがあります:

$('#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 が実行されていないことです。そのため、ロード時にフィールドが空であると思います...

エラーは何ですか?

4

1 に答える 1

0

入力フィールドでは、「テキスト」バインディングではなく「値」バインディングを使用する必要があります。プロパティがマップされていない場合、ブラウザ コンソールでノックアウトによってスローされる例外が表示されます。

于 2012-06-04T11:14:14.617 に答える