0

セットアップを表示するためのフィドラーがあります。

http://jsfiddle.net/smartdev101/dt6kkyy3

問題は、routeController 関数がページの読み込み時に 1 回だけ呼び出されることですが、(リンク クリックの結果として) ハッシュが変更されると、関数routeControllerは再度呼び出されません。

別の ng モジュールでリンクを生成しましたが、リンクがルーターと同じモジュール内にある必要があるかどうかはわかりません。

<div id="router">
    <div ng-view></div>
</div>

<div id="navigation" data-ng-cloak>
        <ul id="folios" data-ng-controller="FoliosController" class="nav nav-pills nav-stacked">
            <li data-ng-repeat="folio in folios" ng-class="{active: isActive('/search/{{folio.productId}}')}">
                <a href="#/search/{{folio.productId}}">{{folio.title}}</a>
            </li>
        </ul>
        <div ui-view></div>
    </div>

編集:

問題がさらに診断されました。ng コントローラーによって生成されたリスト/アンカーは、スコープ外のハッシュ変更に応答しませんが、静的リンクは応答します。plunkrリンクから、「foo」と「bar」のクリックはコントローラーをトリガーしますが、「abc」と「def」はトリガーしません。レビューしてください。問題は、「abc」と「def」(動的リンク) を変更に対応させる方法です。

http://plnkr.co/edit/ea1OHa?p=preview

4

1 に答える 1

0

コードは、コーディングした方法で意図したとおりに動作しています。コントローラーのコンストラクターで呼び出しrouteControllerていますが、他の場所では呼び出されていません (ルーターもそれを行いません)。

ルート変更ごとに関数を呼び出す必要がある場合は、routeControllerルート変更イベントへのバインドを検討してください。

https://docs.angularjs.org/api/ngRoute/service/ $route

このプランクを見てください。ngRoute の代わりに ui-router を使用しているため、代わりに stateChangeSuccess にバインドしていることに注意してください。

http://plnkr.co/edit/CiYLqnqAzrXoouMSXkuk

于 2014-10-08T16:49:04.383 に答える