4

ServiceViewModel と ReservationsViewModel の 2 つのモデルがあります。両方とも、learn.knockoutjs.com にあるチュートリアルに基づいています。

私が抱えている問題は、Web ページが読み込まれるときに ServiceViewModel のみがバインドされることです。ReservationViewModel にバインドされているコントロールには何も表示されません。私はノックアウト.jsが初めてで、解決策を探しましたが、役に立ちませんでした。

ServiceViewModel へのバインディングを削除すると、ReservationsViewModel にバインドするコントロールが適切にバインドされる (つまり、データが表示される) ため、ここで何が起こっているのかわかりません。ノックアウト.jsはページ上で複数のビューモデルを許可していないように思えますが、それはばかげており、大きな制限があるため、問題ではないと思います!

ここに私のフィドルへのリンクがあります: http://jsfiddle.net/zsg6b/ JSFiddle でもバインドが機能しないことがわかります。

Visual Studio Internet Explorer と Google Chrome でプロジェクトを実行すると、次の同じエラーが発生します。

実行時エラー: バインディングを解析できません。メッセージ: ReferenceError: 'seats' は定義されていません。バインディング値: foreach: 席

私は何を間違えましたか?私のjsfiddleをチェックアウトしてください。

PS: これは私の最初の stackoverflow 投稿ですので、お手柔らかにお願いします! :)

ありがとうございました。

4

1 に答える 1

8

ページに複数のビューモデルがある場合、applyBindings 呼び出しで、各ビューモデルが適用されるページの部分を指定する必要があります。

サービス セクションと予約セクションを別々のコンテナーにラップして、applyBindings 呼び出しで指定することでフィドルを修正しました: http://jsfiddle.net/zsg6b/1/

于 2012-05-06T06:15:32.563 に答える