angular - 无法在不同的插座上打开路线
问题描述
我必须在我的 app.component.ts 中,其中之一的名称是 name='popup':
@Component({
selector: 'app-main',
template: `<router-outlet></router-outlet>
<router-outlet name="popup"></router-outlet>`
})
export class AppComponent implements OnInit {
public construnctor(){ }
ngOnInit(){ }
}
我的路线定义是:
export const myappRoute: Routes =[
{
path: '',
component : DataEntryComponent
},
{
path: 'templateModal',
component: TemplateModalComponent,
outlet: 'popup'
}
];
export const TemplateRoute: ModuleWithProvider = RouterModule.forChild(myappRoute);
当我尝试使用以下代码打开“templateModal”路线时:
<button type='submit' [routerLink]="['/' , {outlets: {popup : 'templateModal'}}]" replaceUrl="true"> open </button>
我收到一个错误,说 Cannot match any routes with Url Segment templateModal 。我在 Angular 5 上,这是 StackBlitz 尝试一下:https ://stackblitz.com/edit/angular-n2eaje
解决方案
如果在延迟加载的模块中存在辅助(即命名)路由,则对顶级路由使用非空路径。
<button type='submit' [routerLink]="['home', {outlets:{popup:['templateModal']}}]"> open </button>`
并将templateUrl替换为模板,因为您添加了模板视图而不是 URL
喜欢,
@Component({
selector: 'app-main',
template: `<router-outlet></router-outlet>
<router-outlet name="popup"></router-outlet>`
})
这是更新的Stackblitz
推荐阅读
- scala - Spark`distinct`在使用.config时在本地模式下忽略`spark.default.parallelism`
- android - Android 多线程 - 协程和 UI 线程
- amazon-web-services - 如何在使用 HTTP 端点时从 AWS Api Gateway 返回多个 set-cookie 标头
- mql4 - 如果指标已过期,是否有一个函数( IndicatorRemove() 就像 ExpertRemove() 一样)从图表中删除指标?
- c++ - 返回时对象的字段是随机的
- sql - 为什么我得到一个无效的数据类型?
- python - “元组”对象没有属性“gpu_fraction”
- c# - 如何在完成“事件”时连接到 TransactionScope?
- c++ - 尝试使用 FreeType 2.10.1 时出现 LNK2019?
- node.js - 我的 React 站点在 PC 浏览器中加载正常,但在移动浏览器中加载不正常,为什么?