0

私は新しいノックアウト.js.非常に単純です.データを取得しようとしています(WebAPI-ajax呼び出しを介して)。これがビューです

<table>
<thead>
<tr>
<td>First Name </td>
<td>Last Name </td>
<td> Email </td>
</tr>
</thead>
<tbody data-bind="foreach:Contact">
<tr>
<td data-bind="text:FirstName"></td>
<td data-bind="text:LastName"></td>
<td data-bind="text:EmailAddress"></td>
</tr>
</tbody>
</table>

これが私のビューモデルとajax呼び出しです。Ajax呼び出しは3つのレコードを返します。FirstName、LastName、EmailAddress

<script type="text/javascript" >

    $(document).ready(function () {       
        var data = [];
        var viewModel = {
            Contact: ko.observableArray(data)
        };
   $.ajax({
            url: "http://localhost/AW/api/Person",
            type: "GET",
            dataType: "json",
            statusCode: {
                200: function (contacts) {
                    viewModel.Contact = contacts;
                }
            }
        });
        ko.applyBindings(new viewModel());
    });            
</script>

私が言ったように、API は正常にレコードを返しますが、拘束力はありません。ここで愚かなことをしているのかもしれません。

4

1 に答える 1

2

ko.observableArray(like ko.observable) は関数を返すため、新しい値を引数として呼び出して値を設定する必要があります。

200: function (contacts) {
    viewModel.Contact(contacts);
}

また、viewModel はオブジェクト リテラルであり、関数ではないため、次のように記述する必要があります。

ko.applyBindings(viewModel);
于 2013-01-20T14:02:57.590 に答える