Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何设置角度布线_Javascript_Angular - Fatal编程技术网

Javascript 如何设置角度布线

Javascript 如何设置角度布线,javascript,angular,Javascript,Angular,这是我的工作 我设置了一个守卫,将请求URI/admin转发到/login, 有关详细信息,请参阅/admin/admin.guard.ts 它很好用。但是,当请求URI为/admin/abc时,它不起作用 以下是/admin/admin-routing.module.ts内容: import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { Ad

这是我的工作

我设置了一个守卫,将请求URI/admin转发到/login, 有关详细信息,请参阅/admin/admin.guard.ts

它很好用。但是,当请求URI为/admin/abc时,它不起作用

以下是/admin/admin-routing.module.ts内容:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AdminComponent } from './admin.component';
import { AdminGuard } from './admin.guard';
const routes: Routes = [
  {
    path: 'admin',
    canActivate: [AdminGuard],
    component: AdminComponent,
    children: [
      {
        path: '',
        redirectTo: 'admin',
        pathMatch: 'full'
      },
      {
        path: '**',
        redirectTo: 'admin',
        pathMatch: 'full'
      }
    ]
  }
];

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

如何解决此问题?

使用绝对路径进行重定向:

const routes: Routes = [
{
  path: 'admin',
  canActivate: [AdminGuard],
  component: AdminComponent,
  children: [
    {
      path: '',
      redirectTo: '/admin',
      pathMatch: 'full'
    },
    {
      path: '**',
      redirectTo: '/admin',
      pathMatch: 'full'
    }
  ]
}
];
如果您使用相对路径,将有一个无限的重定向循环。
从/admin/123到/admin/admin到/admin/admin,依此类推。

您可能需要检查在
app.module.ts中的
导入
下注册自定义角度模块的顺序。确保包含
{path:'**',…}
路由条目的模块列在其他模块之后的末尾

例如,对于您的情况,请在app.module.ts的末尾保留adming
AdminRoutingModule

@NgModule({
  declarations: [ ... ]
  imports: [
   // Angular in-built modules
   // Your custom modules
   AdminRoutingModule
  ],
  providers: [ ... ],
  entryComponents: [ ... ],
  bootstrap: [ AppComponent ]
})
**
表示当找不到与应用程序注册的现有路由匹配的url时,要重新选择的url的最终选项。还可以考虑使用重定向属性中的绝对路径,如<代码> /admin < />代码>

所以我不确定这是否能帮你解决问题,但值得一试