angular - Angular-查找子组件名称
问题描述
我有一个带有面包屑组件和路由器插座的父组件:
<div class="LG_popage-wrap">
<div class="LG_global-popage-crumbs" style="text-align: center">
<app-breadcrumb [breadcrumbsData]="breadcrumb" ></app-breadcrumb>
</div>
<router-outlet></router-outlet>
</div>
面包屑属性只是组件名称上的一个数组:
breadcrumb: Array<BreadcrumbModel> = [
{
componentName: 'StepSetupComponent',
label: 'setup'
},
{
componentName: 'StepFieldsComponent',
label: 'fields'
},
]
我需要在我的子路由(使用路由器 Outlet 注入)中,将当前组件名称的名称与我的数组进行比较。我已经编写了代码,但它只在本地而不是在生产中工作
export class BreadcrumbComponent implements OnInit {
@Input() breadcrumbsData: Array<BreadcrumbModel> = [];
breadcrumbsIndex: number;
constructor(
private route: ActivatedRoute,
private router: Router
) {
router.events.subscribe((val) => {
// Route changing
window.scrollTo(0, 0);
this.breadcrumbsIndex = this.breadcrumbsData.findIndex(x => x.componentName === this.route.firstChild.component['name']);
});
}
ngOnInit() {
this.breadcrumbsIndex = this.breadcrumbsData.findIndex(x => x.componentName === this.route.firstChild.component['name']);
}
}
问题是 this.route.firstChild.component['name']
在本地,他给了我组件的名称。但在产品中,他给了我一个名字“N”
如何找到我当前组件的名称?
谢谢你的帮助。
解决方案
在构建您的项目时,角度会使您的代码变得丑陋,以获得更小的包大小。因此名称将被更改。
这也不是处理面包屑的正确方法。尝试将您的标签添加到路线数据并在那里获取
推荐阅读
- angular - Angular 不是函数 Jasmine
- python - 无法使用 w+ 读取文件
- c# - 在定义子类期间如何确保我的类的类型是特定类型?
- python - 如何限制 GraphicsScene 以便只能在加载的图像上绘图?
- c# - 在 VS 中使用 NuGet 包获取源代码
- javascript - 没有特定类名的目标元素
- javascript - $.getJSON 不检索最新信息
- javascript - 如何为从 API 获取的静态 Mapbox 图像添加颜色
- kotlin - 当我按下下一个活动的按钮时,如何显示广告?
- java - Collectors.toList 和 Stream.toList 之间的模板参数区别