Angular Маршрутизация очищает форматирование FormsModule - PullRequest
0 голосов
/ 11 апреля 2020

Я начинаю делать услугу. Я сделал основной сайт, и есть кнопка «Сервис», которая должна перенаправить на компонент входа. Это так, но основной проблемой является исчезновение формата при использовании маршрутизации и <router-outlet>.

в app.component. html: когда я использую:

<app-main-page></app-main-page> 
<app-login-page></app-login-page>

Показывает главную страницу и затем компонент входа внизу с форматом FormsModule. screen 1 - с форматом
Но когда я вместо этого использую:

<router-outlet></router-outlet>

и я нажимаю на кнопку, он перенаправляет меня на страницу входа в систему, и форматирование FormsModule исчезает. экран 2 - без формата

Я думаю, что модуль маршрутизации и модуль верны, но я не уверен.

app.module.ts:

import { NgModule } from '@angular/core';
import { FormsModule }   from '@angular/forms';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { MainPageComponent } from './main-page/main-page.component';
import { LoginPageComponent } from './login-page/login-page.component';

@NgModule({
  declarations: [
    AppComponent,
    MainPageComponent,
    LoginPageComponent,
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    FormsModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

app-routing.module.ts:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LoginPageComponent } from './login-page/login-page.component';
import { MainPageComponent } from './main-page/main-page.component';


const routes: Routes = [
  { path: '',  redirectTo: '/mainpage', pathMatch: 'full' },
  { path: 'mainpage', component: MainPageComponent},
  { path: 'login', component: LoginPageComponent },

];

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

login-page.component. html:

<div class="container">
  <div [hidden]="submitted">
    <h1>Login Form</h1>
    <form (ngSubmit)="onSubmit()" #loginForm="ngForm">
      <div class="form-group">
        <label for="name">Name</label>
        <input type="text" class="form-control" id="name" required [(ngModel)]="model.name" name="name" #name="ngModel">
        <div [hidden]="name.valid || name.pristine" class="alert alert-danger">
          Name is required
        </div>
      </div>

      <div class="form-group">
        <label for="password">Password</label>
        <input type="text" class="form-control" id="password" [(ngModel)]="model.password" name="password">
      </div>

      <button type="submit" class="btn btn-success" [disabled]="!loginForm.form.valid">Submit</button>
      <button type="button" class="btn btn-default" (click)="NewPerson(); loginForm.reset()">New Person</button>
    </form>
  </div>
</div>

1 Ответ

0 голосов
/ 11 апреля 2020

Я думаю, вы должны импортировать модуль формы перед маршрутизацией модуля в app.module.ts

app.module.ts

 import { NgModule } from '@angular/core';
 import { FormsModule }   from '@angular/forms';
 import { AppRoutingModule } from './app-routing.module';
 import { AppComponent } from './app.component';
 import { MainPageComponent } from './main-page/main-page.component';
 import { LoginPageComponent } from './login-page/login-page.component';

@NgModule({
declarations: [
AppComponent,
MainPageComponent,
LoginPageComponent,
],
imports: [
BrowserModule,
FormsModule,
AppRoutingModule <==
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...