2017-01-05 16 views
2

私は最終リリース2.0.2 2.4.1以降、NG2を使用しています。アトリビュートディレクティブは、https://angular.io/docs/ts/latest/guide/attribute-directives.htmlのチュートリアルのような単純なケースで動作し、私が見つけることができるチュートリアルはすべて、app.component.htmlですぐに宣言されたディレクティブをレンダリングする単純なケースです。しかし、私はこのようなapp.component.htmlで定義されているルータのコンセントにレンダリングされたコンポーネントがあります。RouterOutletでレンダリングされたコンポーネントでAngular2属性ディレクティブが機能しませんか?

<nav> 
    <a routerLink="/" routerLinkActive="active"> </a> 
</nav> 
<div class="jumbotron"> 
    <div class="container"> 
     <div class="col-sm-12"> 
      <router-outlet></router-outlet> 
     </div> 
    </div> 
</div> 

をそして私はapp.module.tsでディレクティブを宣言します。

@NgModule({ 
... 
    declarations: [ 

     //** Root level components 
     AppComponent, 

     HomeComponent, 
... 
     HighlightDirective, 

    ], 

と機能モジュールルートはアプリ-routing.module.tsで宣言されて:ネストされたコンポーネントがレンダリングされるとき

const routes: Routes = [ 
    { path: 'login', component: LoginComponent }, 

    { path: 'ml_payment', loadChildren: 'app/payment/payment.module#PaymentModule', canActivate: [AuthGuard] }, 
    { path: 'account', loadChildren: 'app/account/account.module#AccountModule', canActivate: [AuthGuard, AdminGuard] }, 
    { path: 'wip', component: WIPComponent }, 

    { path: '', component: HomeComponent, canActivate: [AuthGuard] }, 
    { path: '**', component: NotFoundComponent }, 

]; 

@NgModule({ 
    imports: [RouterModule.forRoot(routes)], 
    exports: [RouterModule] 
}) 
export class AppRoutingModule { } 

、NG2ランタイムは、HTMLのそれぞれのスタイルタグにmyHighlightをレンダリングしません。私は何かを見逃してしまったのか、NG2のカスタム属性ディレクティブがRouterOutletで動作しないのか不思議です。 [routerLinkActive] = "[ 'アクティブ']"

<nav> 
    <a routerLink="/" [routerLinkActive]="['active']"> </a> 
</nav> 
<div class="jumbotron"> 
    <div class="container"> 
     <div class="col-sm-12"> 
      <router-outlet></router-outlet> 
     </div> 
    </div> 
</div> 
+0

ご覧いただいているエラーはありますか? – anshuVersatile

+0

ブラウザのF12にエラーはありません。しかし、私は指示クラスのコンストラクタが呼び出されていないと確信しています。 – ZZZ

+0

どこで 'myHighlight'をレンダリングすればよいですか?私はそれがあなたのコードのどこにでも追加されているのを見ません。 –

答えて

1

使用routerLinkActiveは、あなたはそれが宣言されたモジュールの "輸出" セクションでディレクティブを入れたのですか?今日私は、指令をエクスポートするのを忘れたときに同様の問題を抱えていました。

幸運。

+0

使用する構文はおそらくng2の古いプレリリース版のものです。最終リリースでは、そのような構文は他の目的のためです。 – ZZZ

関連する問題