Angular:页面加载时路由到不同的模块

时间:2018-11-29 04:23:38

标签: angular angular5 angular-router

我最近开始研究Angular(Angular 5),路由虽然很新但是很弱。我的应用程序有3个名为Sub CheckLogin() Dim conn = New SqlConnection("Data Source=SRV-SQL;Initial Catalog=prova;User ID=user;Password=user") conn.Open() Try Dim query As String = "select count(*) from tblLogin where username = @username and password= @password " Dim cmd = New SqlCommand(query, conn) cmd.Parameters.AddWithValue("@username", txtUsername.Text) cmd.Parameters.AddWithValue("@password", txtUserPwd.Text) Dim DR As SqlDataReader = cmd.ExecuteReader() If DR.HasRows Then MsgBox("Logged-in successfully") Else MessageBox.Show("The username or the password is wrong!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Error) End If Catch ex As Exception MsgBox(ex.Message) End Try conn.Close() End Sub 的标签,并且我有两种类型的用户Home, School, OfficeAdmin。单击non-admin标签后,管理员将被重定向到“管理”页面,非管理员用户将被重定向到非管理页面。

因此,为此要求,我做了这样的路由:

app.module.ts

Office

app.component.ts

@NgModule({
  imports: [
    BrowserModule,
    AdminModule,
    NonAdminModule
  ],
  declarations: [AppComnonent],
  bootstrap: [AppComponent]
})
export class AppModule { }

app.component.html

ngOnInit(){
 this.userIsAdmin = true;
}

non-admin.module.ts

<div *ngIf='!userIsAdmin '>
<non-admin-page></non-admin-page>
</div>
<div *ngIf='userIsAdmin '>
<admin-page></admin-page>
</div>

admin.module.ts

@NgModule({
      imports: [

      ],
      declarations: [NonAdminComnonent],
      exports: [NonAdminComnonent]
    })
    export class NonAdminPageModule { }

admin-page.html

@NgModule({
      imports: [

      ],
      declarations: [AdminComnonent],
      exports: [AdminComponent]
    })
    export class AdminPageModule { }

non-admin-page.html

<div>I am ADMIN</div>

我必须在页面加载时路由到其他模块,路由正确吗?请引导我。

2 个答案:

答案 0 :(得分:0)

我会使用延迟加载:How to Route to Feature Module

如果不尝试,请尝试:https://stackblitz.com/edit/angular-hd7ayj

您的代码将是学校,而不是迪士尼。

查看我的个人资料以查看实际应用。

希望这会有所帮助。编码愉快。

答案 1 :(得分:0)

以您为例,您只是根据同一组件中的情况显示 admin 非管理员 html。 如果要使用路由来区分,可以使用以下过程,

  1. 创建一个标志来区分用户(如您已经完成的操作)
  2. 根据此条件创建选项卡。有两个用于办公室的选项卡项目-一个路由到 admin ,另一个路由到 non-admin ,并根据标志仅显示其中一个。

通过这种方式,您可以区分管理员和非管理员的组件。