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

条件路由配置

卞博简
2023-03-14

我希望有一个响应的应用程序。它应该有一个不同的导航在一个小屏幕上(一系列屏幕下钻至详细页面)和一个大屏幕上(左面板详细信息在一个页面上)。

由于Angular2中的路由是在组件级别上定义的,因此我的想法是创建一个根级组件,该组件将有条件地(ngIf)包括bigScreen.component.ts或smallScreen.component.ts。然后,路由本身将在 bigScreen/smallScreen 组件中定义。不过,这似乎不起作用。

这将在控制台上产生一个错误:

Error: Component "AppContainer" has no route config.

看起来如果嵌套组件有导航配置,我必须在根组件中创建导航配置。有没有办法实现我的需求?或者应该以不同的方式实现响应路由?

共有2个答案

罗安宁
2023-03-14
let routeMobile = [{path:'/', name: 'Home', component: MobileHomeComponent},
  {path:'/hero/:id',      name: 'Detail',   component: detailComponent}];

let routeDesktop = [{path:'/', name: 'Home', component: DesktopComponent}]

function checkForMobile(){
  //returns true for mobile
}
let finalRoute = checkForMobile() ?  routeMobile : routeDesktop;  

@Component({ ... })
@RouteConfig(finalRoute)
export class AppComponent { }

如果您非常希望它也能响应,只需在<code>事件中重新加载页面即可。

李俊雅
2023-03-14

在新路由器(< code >

router.resetConfig([
 { path: 'team/:id', component: TeamCmp, children: [
   { path: 'simple', component: SimpleCmp },
   { path: 'user/:name', component: UserCmp }
 ] }
]);

您可能需要一个虚拟配置来在应用程序启动时初始化路由器,或者使用How to pass parameters rendered from back end to angular 2 bootstrap方法来延迟初始化,直到路由配置准备就绪。

https://github.com/angular/angular/issues/11437#issuecomment-245995186 提供RC.6 Plunker

 类似资料:
  • 问题内容: 我有一项服务有两项操作。 我有骆驼大溃败: 在我的处理器bean中,当我指定时: 我得到了注册用户对象。一切正常。问题是我希望骆驼有条件地路由我的请求,例如: 如果服务操作是我要将消息路由到我的特定bean,并且如果服务操作是我要将消息路由到另一个bean。 我尝试使用骆驼xPath,但似乎无法正常工作。 我正在搜索如何设置骆驼以路由到不同的目标,但没有找到任何东西。也许有人知道问题可

  • 每个路由可以有不同的属性; 一些常见的属性是: path - 应用程序在特定路由上时在浏览器中显示的URL component - 当应用程序在特定路由上时要呈现的组件 pathMatch - 默认为’prefix’的可选属性。 确定是匹配完整的网址还是仅匹配开头。 当定义一个具有空路径字符串的路径设置pathMatch为’full’时,否则它将匹配所有路径。 children - 表示此路由的子

  • Tango支持4种形式的路由匹配规则 静态路由 tg.Get("/", new(Action)) tg.Get("/static", new(Action))匹配 URL:/ 到 Action结构体的Get函数 匹配 URL:/static 到 Action结构体的Get函数 命名路由 tg.Get("/:name", new(Action)) tg.Get("/(:name)", new(Act

  • 路由配置 路由的作用 路由配置是 CAT 集群流量负载均衡最重要的一环。路由配置提供了默认机器列表、多机房划分、地域划分等基本功能,路由选择的优先级为:同机房 > 同地域 > 默认机器 > 备用机器。 对于流量较高的机器,用户可以扩展相应的策略,通过路由配置将部分流量指定到低负载的机器。 配置入口 http:///localhost:8080/s/config?op=routerConfigUpd

  • V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由不同的出站连接发出,以达到按需代理的目的。这一功能的常见用法是分流国内外流量,V2Ray 可以通过内部机制判断不同地区的流量,然后将它们发送到不同的出站代理。 RoutingObject RoutingObject 对应主配置文件中的routing项。 { "domainStrategy": "AsIs", "rules": []

  • 问题内容: 当且仅当某些条件满足时,如何进行条件路由,才应进行路由。例如,仅当用户输入正确的凭据时,登录才应该成功,并且用户应该能够看到欢迎页面。 如果我们直接点击某些网址(例如“ localhost:8080 / welcome”),不应将其导航到欢迎页面,则仅在登录欢迎页面后才能看到。我怎么能做到这一点,任何人都可以帮助我..谢谢你。 App.js Header.js AllRoutes.js