【问题标题】:Finding Route Children For Breadcrumbs Angular 6为面包屑Angular 6寻找路线儿童
【发布时间】:2018-09-26 07:32:44
【问题描述】:

目前我正忙于测试在我的 Angular 应用程序中包含面包屑的方法。我找到了一个教程并遵循了它,因此下面的代码来自this 教程。

我目前面临的问题是检查当前激活的路线是否有孩子。这是当前从检查路线是否有孩子的代码返回的内容:

如您所见,它返回一个数组,其中包含子数组。我需要做的是将此内部数组分配给 children 变量。

有人有什么建议吗?我试过过滤,但它似乎也不起作用?我知道这可能是一个简单的修复。提前谢谢!

【问题讨论】:

    标签: angular breadcrumbs


    【解决方案1】:

    我正在做类似的事情。不完全确定您要做什么,但要访问第一个孩子中的数据,您可以这样做:

    const firstChild = this.route.snapshot.firstChild
    console.log(firstChild.data)
    

    看看这是否有效。

    为了扩展这一点,我的 ngOnInit 看起来像这样:

    ngOnInit() {
      this.updateTitle()
      this.router.events.subscribe((event) => {
        if (event instanceof NavigationEnd) {
          this.updateTitle()
        }
      })
    }
    
    private updateTitle() {
      const firstChild = this.route.snapshot.firstChild
      console.log(firstChild.data)
      // more code
    }
    

    updateTitle 方法在 ngOnInit 和 subscribe 内部调用。我认为这是在初始化和路由更改时捕获它的必要条件。可能不会影响您,取决于您的组件组织。

    【讨论】:

    • 谢谢回复,好像只返回一个空对象?
    • 我假设 firstChild 没问题,但 firstChild.data 是空对象?
    • 好的,所以如果设置了 firstChild,那么路线有孩子......您可以在路线配置中将数据分配给孩子(不确定您想要做什么) - 您可以将任何数据设置为使用数据属性(静态数据)或使用解析器的解析属性(动态数据)路由数据
    • 示例 ... 路径:'accounts',组件:BasicLayoutComponent,数据:{ name:'hello'}
    • 是的,这就是我正在做的事情,我有一个名为 breadcrumbs 的东西,这是应该显示的数据,但是我首先需要尝试解决这个问题,然后我会排序出那个。那么你是说如果firstChild 有一个值,那么该路由就有孩子?
    猜你喜欢
    • 2021-12-07
    • 2017-03-16
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多