私は最終リリース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>
ご覧いただいているエラーはありますか? – anshuVersatile
ブラウザのF12にエラーはありません。しかし、私は指示クラスのコンストラクタが呼び出されていないと確信しています。 – ZZZ
どこで 'myHighlight'をレンダリングすればよいですか?私はそれがあなたのコードのどこにでも追加されているのを見ません。 –