ログインページ以外のすべてのページで必要な要素がいくつかあります。私は、ユーザーがログインページにいるときにそれらの要素を非表示にするために、要素の隠しプロパティまたはngIfを使用したいと思います。 Angular2のルーティングに基づいて要素を非表示にするrc1
<div [hidden]="router.isRouteActive(router.generate('/login'))">
はこの質問と回答に基づいて:
In Angular 2 how do you determine the active route?
もこれを試してみました:
<div *ngIf="!router.isRouteActive(router.generate('/login'))">
を任意の成功を持っていなかった
私はこれを試してみました。
ここで参考になるのは、このhtmlと一致するコンポーネントです。
import { Component, OnInit } from 'node_modules/@angular/core';
import { HTTP_PROVIDERS, XHRBackend } from 'node_modules/@angular/http';
import { Routes, Router, ROUTER_DIRECTIVES } from 'node_modules/@angular/router';
import { LoginService } from './login/login.service';
import { LoginComponent } from './login/login.component';
import { UserComponent } from './user/user.component';
@Component({
selector: 'portal',
templateUrl: 'portal/portal.component.html',
directives: [ROUTER_DIRECTIVES, LoginComponent, UserComponent ],
providers: [
HTTP_PROVIDERS,
LoginService
]
})
@Routes([
{ path: '/login', component: LoginComponent},
{ path: '/user/:username', component: UserComponent}
])
export class PortalComponent implements OnInit{
private router: Router
constructor() {}
ngOnInit() {
this.router.navigate(['/login']);
}
}
isRouteActiveのドキュメントは非常にスリムで、generateと同じです。この動作を達成するためのよりよい方法の方向性?
はい!最後に、私が探していた答えが見つかりました。ありがとうございました。 –
'contains'はネイティブのjavascriptではありません。 URLで文字列を検索しようとする人のために私の答えを見てください:http://stackoverflow.com/a/41684866/4194436 – Michelangelo