0

JohnPapaのCodeCamperプロジェクトに新しいビューを追加しようとしています。私は単純なハッシュナビゲーションバインディングで立ち往生しています。私の質問は、{href:favorites}に入力するコードをどのように見つけるかです。ハッシュタグ#/ favoritesが入力されますが、どこで発生するのかわかりません。30を超えるJSファイルがあり、「お気に入り」を検索すると結果が多すぎます。「お気に入り」を見つけたすべての場所にnewviewコードを追加しようとしましたが、うまくいきませんでした。エラーが発生します:

メッセージ:ReferenceError:newviewが定義されていません。バインディング値:attr:{href:newview}

では、以下のコードで{href:favorites}に何が入力されているかをどのように判断できますか?ノックアウトバインディングがどのように機能するかは知っていますが、プロジェクトでコードを見つけることができません。JohnPapaのCodeCamperプロジェクトとこの特定のコードは別として、一般に、バインディングがノックアウトjsのどこにあるかを知ることができるツールはありますか?

<li class="route-top"><a data-bind="attr: {href: favorites}">Favorites</a></li>

編集:この場合、私はバインディングを見つけました。Webページがキャッシュにスタックしているため、機能しないと思いました。それでも、どのコードがプロパティにバインドされているかを識別するためのツールまたはメソッドがある場合は、それについて知りたいと思います。

4

1 に答える 1

0

参照しているセクションは、ビューのナビゲーション リンクです。これらはシェルで常に表示されるため、vm.shell.js にバインドしました。シェル ビューモデルには menuHashes のプロパティがあり、それらは実際には構成ファイルで定義されています (データベース駆動の可能性があります)。

より広い範囲では、binder.js モジュールを見ることで、どのビューが CodeCamper のどのビューモデルにバインドされているかを知ることができます。これは、ノックアウト バインディングが html/views にリンクされている場所です。

            ko.applyBindings(vm.shell, getView(ids.shellTop));
            ko.applyBindings(vm.favorites, getView(ids.favorites));
            ko.applyBindings(vm.session, getView(ids.session));
            ko.applyBindings(vm.sessions, getView(ids.sessions));
            ko.applyBindings(vm.speaker, getView(ids.speaker));
            ko.applyBindings(vm.speakers, getView(ids.speakers));
于 2012-11-16T05:08:30.817 に答える