2

現在アクティブなリンクを強調表示したい

<a [routerLink]="['/route']" />

レンダリング後<a>、適切に機能する正しいリンクのタグを取得しています。

しかし、このディレクティブには、 hrefが現在の場所と同じ場合にrouter-link-activeクラスをアンカーに追加する追加の動作もあります。

問題は、これがうまく機能しないことです。

get isRouteActive(): {
    return this._router.isRouteActive(this._navigationInstruction);
}

_router.IsRouteractive内には、現在のルート コンポーネントを含む現在の命令フィールドがあります。そして、そのコンポーネントは __navigationInstruction と比較されます。実際、ルート コンポーネントが等しい場合、リンクは最新です。

問題は、現在の命令がnullであることです。次の場所に割り当てられます。

Router.prototype.commit = function(...)

この関数は、Directive が処理された後に呼び出されます。

したがって、これは決してうまくいくはずがありません。

4

4 に答える 4

0

ここでhttps://github.com/angular/angular/issues/6360#event-511390805と書かれています

angular2-polyfills.js と es6-shim.js を system.js スクリプト タグの下に移動するとうまくいきました。ありがとう

于 2016-01-11T19:36:17.653 に答える