Это может быть очень распространенная angular
проблема маршрутизации, но я не могу заставить ее работать.Я не уверен, ясно ли я понимаю все концепции даже после прохождения угловых документов.Вот чего я хочу достичь и что я попробовал:
У меня есть приложение для входа.Когда пользователь нажимает кнопку продолжить в форме входа, я хочу, чтобы приложение перенаправляло на новую страницу / приложение.Для этого:
- Сначала я попытался добавить
RouterModule
в мой список @NgModule imports
в файле app.module.ts
.
import { RouterModule, Routes } from '@angular/router';
// Routes
const routes: Routes = [
{path: "", component: InvestigatorLoginComponent},
{path: 'invdashboard', component: InvDashboardComponent}
];
//...
@NgModule({
// ...
imports: [
// ...
RouterModule.forRoot(
routes, { enableTracing: true} // <= debugging
),
// ...
})
export class AppModule {}
Добавлен
<router-outlet></router-outlet>
к
<inv-dashboard>
компоненту:
app.component.html
<div id='login-app-wrapper'>
<nav-top></nav-top>
<investigator-login></investigator-login>
</div>
inv-dashboard.component.html
<router-outlet></router-outlet>
<p>
inv-dashboard works!
</p>
inv-dashboard.component.ts
import { RouterOutlet } from '@angular/router';
@Component({
selector: 'inv-dashboard',
templateUrl: './inv-dashboard.component.html',
styleUrls: ['./inv-dashboard.component.css']
})
export class InvDashboardComponent implements OnInit { // ... }
Компонент входа: investigator-login.component.html
<form class='inv-login' [formGroup]="invLoginForm" (ngSubmit)="onSubmit(invLoginForm.value)">
<mat-form-field class='inv-login-full-width-input'>
<input matInput placeholder="Username" formControlName="fcUsername" value="" maxlength="30">
</mat-form-field>
<mat-form-field class='inv-login-full-width-input'>
<input matInput placeholder="Password" formControlName="fcPassword" value="" maxlength="25">
</mat-form-field>
<div class='prcd-btn-container'>
<button mat-button color='primary' type='submit'>Proceed</button>
</div>
</form>
investigator-login.component.ts
`onSubmit(f: any): void {
this.authenticator.postContent(f)
.subscribe(
this.handleLoginResponse,
err => { throw new Error('failed'); }
);
}
handleLoginResponse(res: IResponseSuccess) {
if(res.status === 200) {
// success
console.log(res.template);
}
else {
console.error('Server error ' + res.status);
}
}`
Когда после заполнения формы я нажимаю продолжить,Ничего не произошло.Дорожка стека не показывает перенаправления.Нужно ли добавлять какой-либо код перенаправления в обработчик кнопки proceed
в форме?Я действительно не уверен, что еще добавить.
Спасибо