0

MVCからjson文字列に作成する単純なviewModelがあります。これを実現するためにko.mappingを使用しています。

var initialTicketData = {"Ticket": [{"ID":1,"EventID":506596,"Name":"General Admission","Quantity":100,"Price":15.0},{"ID":2,"EventID":506596,"Name":"Backstage Passes","Quantity":25,"Price":50.0}]};

var ticketViewModel = ko.mapping.fromJS(initialTicketData);

ko.applyBindings(ticketViewModel);

この配列を反復処理して、ページにデータを表示したいと思います。foreach データ バインディングを使用しようとしています。

<tbody data-bind="foreach: ticketViewModel.Ticket">
    <tr>
        <td data-bind="text: ticketViewModel.Name"></td>
        <td data-bind="text: ticketViewModel.Price"></td>
        <td data-bind="text: ticketViewModel.Quantity"></td>
    </tr>
</tbody>

ただし、実行しようとすると、次のエラーが発生します。

「バインディングを解析できません。メッセージ: ReferenceError: ticketViewModel が定義されていません。バインディング値: foreach: ticketViewModel.Ticket」

どんな助けでも大歓迎です。

4

1 に答える 1

1

代わりにこれを試してください:

<tbody data-bind="foreach: Ticket">
    <tr>
        <td data-bind="text: Name"></td>
        <td data-bind="text: Price"></td>
        <td data-bind="text: Quantity"></td>
    </tr>
</tbody>

バインディングは常に現在のコンテキストに対して相対的です。ko.applyBindings(ticketViewModel);「ルート」コンテキストをに設定すると言うときticketViewModel。次に、「foreach」を使用するときに新しいコンテキストを追加すると、「foreach」内のバインディングが各チケット要素に対して相対的になります。

于 2012-06-08T07:12:55.783 に答える