0

質問emberjsの以前の回答を完全に理解しようとしていました-ルーターインフラストラクチャを使用してアクティブなメニュー項目をマークする方法

答えでは、(アウトレットナビゲーションを使用せず、ルートの下に第2レベルのルーティングを追加せずに)単純化しようとしましたが、私の場合、アクティブリンクは機能しません://

ここにフィドルがあります: http://jsfiddle.net/archange/Scqxw/

フィドルで理解できないのは、ルーターでの設定後に「isActive: function()」が更新されない理由です... :/

通りすがりの誰かが私に理由を説明できれば。本当にありがとう。そして、誰かがナビゲーションメニューを処理するための別の解決策を持っている場合(おそらく bindAttr を使用していますか?)

ありがとう

4

1 に答える 1

0

ここで起こっていることは、テンプレート/ビューが別のビューを作成するときに、新しく作成されたビューにそのコントローラーへのアクセスを与えるということです。例えば:

<script type="text/x-handlebars" data-template-name="application">
    {{view App.NavigationView}}
</script>

ナビゲーション ビューのコントローラーはインスタンスになりますapplicationController。これは予期される動作です。

新しく作成したコントローラーに別のコントローラーを使用するように伝えたい場合NavigationViewは、次のようにそれを渡します。

{{view App.NavigationView controllerBinding="navigationController"}}

でこれら 2 つのコントローラーを一緒に配線したことに注意してくださいApp.ready

編集したフィドルは次のとおりです: http://jsfiddle.net/Scqxw/5/

于 2012-09-22T02:11:23.070 に答える