ログインから別のページにページをリダイレクトしようとしています。このコードをフォローしています。
ログインコンポーネントのtsファイル:
import { Router } from '@angular/router';
constructor(private router: Router) {
}
funLogin(mobilenumber){
this.router.navigateByUrl('registration');
}
私のhtml Imでは、submit btnでこの関数を呼び出していますが、
<button class="common-btn btn" (click)="funLogin(mobileNo.value)">Submit</button>
In my app.login.routing file,
export const loginRouting: Routes = [
{
path: '', component: DashboardRootComponent, canActivateChild: [],
children: [
{ path: '', component: DashboardComponent, pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'registration', component: RegistrationComponent },
]
}
]
「this.router.navigate」とリンクの参照スロットで試しました。しかし、うまくいきませんでした。誰が私がどこに間違っているのか教えてくれますか?.
@sasi ..このようにしてみて、
<a routerLink="/registration"><button class="btn btn-success" > Submit </button></a>
更新:
アプリケーションでルーティングを使用するには、ビューをレンダリングするためにangularルーターを許可するコンポーネントを登録する必要があります。
特定のコンポーネントビューにルーティングするために、App Module
またはそのFeature Module
(現在の作業モジュール)にコンポーネントを登録する必要があります。
2つの方法でコンポーネントを登録できます
.forRoot(appRoutes)
root level
で登録するfeatuteModules
(ex。UserManagement)やcomponents
などのアプリレベルのコンポーネント登録の場合..forChild(featureRoutes)
機能モジュールの場合child components
(例:UserDelete、UserUpdate)。
以下のようなものを登録できます
const appRoutes: Routes = [
{ path: 'user', loadChildren: './user/user.module#UserModule' },
{ path: 'heroes', component: HeroListComponent },
];
@NgModule({
imports: [
BrowserModule,
FormsModule,
RouterModule.forRoot(
appRoutes
)
],
PS:あるコンポーネントから別のコンポーネントにナビゲートするには、
RouterModule
を対応するModule Imports配列に@angular/router
パッケージ。
Angularでは2つの方法で別のページにナビゲートできます。両方ともラッパーレベルで同じですが、実装はサイドビットdiffからです。)
routerLink
ディレクティブは、Router
クラスのnavigateByUrl()
のような絶対パス一致を提供します。
<a [routerLink]=['/registration']><button class="btn btn-success" > Submit </button></a>
dynamic values
を使用してリンクを生成する場合、パスセグメントのarray
を渡し、その後に各セグメントにparams
を続けて渡すことができます。
たとえば、routerLink=['/team', teamId, 'user', userName, {details: true}]
は、 /team/11/user/bob;details=true
へのリンクを生成することを意味します。
routerLink
を使用している場合、覚えておくと便利な点がいくつかあります。
/
で始まる場合、ルーターはアプリのルートからルートを検索します。./
で始まるか、スラッシュで始まらない場合、ルーターは現在アクティブ化されているルートの子を探します。../
で始まる場合、ルーターは1レベル上がります。詳細はこちらをご覧ください。routerLink
メソッドを使用するには、コンポーネントにRouter
クラスを挿入する必要があります。
navigate()
、navigateByUrl()
、その他のようにナビゲートするメソッドは3つ以上ありますが、ほとんどこれら2つを使用します。
提供されたコマンドの配列と開始点に基づいてナビゲートします。開始ルートが指定されていない場合、ナビゲーションは絶対です。
this.route.navigate(['/team/113/user/ganesh']);
navigate()
コマンドは、既存のURLに最新の文字列を追加します。以下のように、このメソッドからqueryParams
を解析することもできます。
this.router.navigate(['/team/'], {
queryParams: { userId: this.userId, userName: this.userName }
});
これらの値は、ナビゲートされたコンポーネントでActivatedRoute
で取得できます。 paramMap
、 snapshot(no-observable alternative)
の詳細を確認できます。
絶対URLでなければならない、提供されたURLに基づいてナビゲートします。
this.route.navigateByUrl(['/team/113/user/ganesh']);
navigateByUrl()
は、ロケーションバーを直接変更することに似ています。新しいURLを提供していますwhole。
私はangular 7を使用していますが、この方法でプロジェクトに解決しました。
1.最初に、このモジュールをapp.module.tsファイルに実装する必要があります
import { AppRoutingModule} from './app-routing.module';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
BrowserModule,
AppRoutingModule,
FormsModule,
],
})
2.次に、your.component.htmlファイルを開き、目的の場所に移動するためのメソッドを起動します
<button class="btn btn-primary" (click)="gotoHome()">Home</button>
3.次に、移動したい場所のyour.component.tsファイルに移動します。そして、このコードをそこに追加します。
import { Router } from '@angular/router';
export class YourComponentClassName implements OnInit {
constructor(private router: Router) {}
gotoHome(){
this.router.navigate(['/home']); // define your component where you want to go
}
}
4.そして最後に、あなたがapp-routing.module.tsの世話をするように注意することを言いたいです。私の場合。
const routes: Routes = [
{ path:'', component:LoginComponent},
{ path: 'home', component:HomeComponent }, // you must add your component here
{ path: '**', component:PageNotFoundComponent }
];
ありがとう、私はこのルーティングセクションのすべてのケースを共有します。ハッピーコーディング!!!
navigateByUrlは絶対パスを想定しているため、先頭の/で正しいページに移動できます
また、navigateを使用することもできますが、先頭の/は必要ありませんが、パスの配列を想定しているため、構文は少し異なります
<a class="nav-link mt-1" [routerLink]="['/login']"><i class="fa fa-sign-in"></i> Login</a>