当前位置: 首页 > 知识库问答 >
问题:

组件“组件名”没有路由配置

缪宪
2023-03-14

我在angular2的路由上遇到了一些问题。我想在我的服务中创建嵌套路由,但我被卡住了。

@Component({
  selector : "app",
  directives : [ROUTER_DIRECTIVES],
  template : `
    <router-outlet></router-outlet>
  `
})

@RouteConfig([
  {path: "/**", redirectTo: ['/User', {userId:0}, 'Main']},
  {path: "/users/:userId/...", component: User, name: "User", useAsDefault:true},
  {path: "/main", component: Main, name: "Main"}
])

@Component({
  selector : "user",
  directives : [ROUTER_DIRECTIVES, NavBar, UserInfo, Main, Feeds, Notebook],
  template : `
  <div class="dotebook-main">
      <nav-bar></nav-bar>
      <div class="dotebook-view">
        <div class="dotebook-body">
          <router-outlet></router-outlet>
        </div>
        <div class="dotebook-user">
          <user-info [user]="user"></user-info>
        </div>
      </div>
    </div>
  `
})

export class User{
  constructor(){
  }
}

@RouteConfig([
  {path: "/", redirectTo : ['Main']},
  {path: "/main", component: Main, name: 'Main', useAsDefault: true},
  {path: "/feeds", component: Feeds, name: "Feeds"},
  {path: "/notebook/:notebookId", component: Notebook, name: "Notebook"}
])

我想让'/user/:userId'一直成为root,
我希望'/user/:userId/main'成为默认页面。

用户组件应该有子路由,如“/br>”/user/:userId/main”或“/user/:userId/feed”等。

因此我在app.ts中的用户组件url的末尾添加了“/…”

但是在这一点上我有问题。< br>

我认为路由“Main”应该在用户组件中完成,但是,为了让用户第一次进入“users/:userId/Main”,我需要在应用程序中使用“redirectTo”。ts路由配置。

我得到的组件“用户”在这方面没有路由配置错误。< br>

我认为这违反了我建立的url层次结构<但是我猜不出解决办法是什么。

有人有类似的问题吗<救命<提前感谢!

共有1个答案

禄仲渊
2023-03-14

@RouteConfig(…)注释必须位于类声明之上。这样地:

@Component({
  selector : "user",
  ...
})
@RouteConfig([
  {path: "/", redirectTo : ['Main']},
  {path: "/main", component: Main, name: 'Main', useAsDefault: true},
  {path: "/feeds", component: Feeds, name: "Feeds"},
  {path: "/notebook/:notebookId", component: Notebook, name: "Notebook"}
])
export class User{
  constructor(){
  }
}
 类似资料:
  • 我正在尝试为react制作PrivateRoute组件。这是我的高阶组件。你能告诉我这个有什么问题吗。

  • 我试图路由到一个类组件,但它给我一个错误。当我将组件更改为功能性组件时,路由就开始工作了。如何路由到类组件? 我刚开始使用React-Router。我首先有一个要路由到的功能组件。但是一旦我意识到组件需要是一个类,我就把它更改为一个类,现在路由显示 “无法获取/探索/单词”。

  • 我最近在我的路由中实现了反应路由器开关组件,以便呈现一个NoMatch组件(这只是一个404错误组件)。然而,在我的路由中实现这一点后,我注意到在我的主页上只有一个组件会呈现,标题组件。 标题和搜索栏都应该呈现到相同的路径。 我的代码如下: 我注意到如果我删除了Switch组件,那么一切都会渲染得很好,但是NoMatch组件也会渲染到路由。 问题:为什么我不能在交换机内部的同一路径上渲染多个组件?

  • 我希望有一个响应的应用程序。它应该有一个不同的导航在一个小屏幕上(一系列屏幕下钻至详细页面)和一个大屏幕上(左面板详细信息在一个页面上)。 由于Angular2中的路由是在组件级别上定义的,因此我的想法是创建一个根级组件,该组件将有条件地(ngIf)包括bigScreen.component.ts或smallScreen.component.ts。然后,路由本身将在 bigScreen/small

  • 通过Group可以实现路由分组,Group 路由分组可以简化你的路由撰写: 有两种方法来使用Group: 第一种,创建Group对象,通过Group方法传入 g := tango.NewGroup() g.Get("/1", func() string { return "/1" }) g.Post("/2", func() string { return "/2" }) o :=