Angular 如何实现嵌套解析器

Angular 如何实现嵌套解析器,angular,angular-resolver,Angular,Angular Resolver,我有一个组件,它使用解析器获得一个类似这样的类别: ngOnInit() { this.category = this.route.snapshot.data['category']; } 所以这很好用,并且得到了我的分类,它本质上是一个用户列表 在我从上面的解析器获得用户名列表后,我已经在ngOnInit()中手动获取了用户帐户的详细信息,但是当我将它们作为输入()传递给子组件时,它们还没有加载 这会导致抛出下面的错误,这是有道理的 CategoryItemComponent.htm

我有一个组件,它使用解析器获得一个类似这样的类别:

ngOnInit() {
    this.category = this.route.snapshot.data['category'];
}
所以这很好用,并且得到了我的分类,它本质上是一个用户列表

在我从上面的解析器获得用户名列表后,我已经在ngOnInit()中手动获取了用户帐户的详细信息,但是当我将它们作为输入()传递给子组件时,它们还没有加载

这会导致抛出下面的错误,这是有道理的

CategoryItemComponent.html:4 ERROR TypeError: Cannot read property 'id' of undefined
at Object.eval [as updateRenderer] (CategoryItemComponent.html:4)
at Object.debugUpdateRenderer [as updateRenderer] (core.js:11940)
at checkAndUpdateView (core.js:11312)
at callViewAction (core.js:11548)
at execComponentViewsAction (core.js:11490)
at checkAndUpdateView (core.js:11313)
at callViewAction (core.js:11548)
at execEmbeddedViewsAction (core.js:11511)
at checkAndUpdateView (core.js:11308)
at callViewAction (core.js:11548)
at execComponentViewsAction (core.js:11490)
at checkAndUpdateView (core.js:11313)
at callViewAction (core.js:11548)
at execEmbeddedViewsAction (core.js:11511)
at checkAndUpdateView (core.js:11308)
at callViewAction (core.js:11548)
我的问题是:我是否可以使用第一个冲突解决程序中的此用户列表作为第二个冲突解决程序的输入。如果是,具体是如何做到的

编辑1:

我目前将下载的用户从ngOnInit()提供给一个子组件,如下所示:

<app-account [account]="account"></app-account>


我知道我可以按照@alokstar的回答来做,但我想知道这是否是推荐的方法,或者是否有一种更优雅的方法来嵌套解析器。

因此,如果加载子组件需要此输入,那么您可以考虑在加载子组件之前对其施加条件,如:

<child-component *ngIf = 'dataAvailable'>
</child-component>


或者,如果您想加载子组件,即使输入未定义或不可用,也可以在子组件中添加防御条件,以避免“未定义”类错误。

您可以在子元素上设置条件,如*ngIf=“dataAvailable”如果我误解了您的问题,请通知我!我想你把这里的术语混在一起了。是否要使用一个解析器中的数据作为子组件的输入?或者,是否要基于从第一个冲突解决程序返回的对象中的某些数据强制执行另一个冲突解决程序?请记住,正如名称所示,解析器是在某个特定路径上解析的。因此,如果要执行另一个冲突解决程序,则需要导航到另一个路径,在该路径中有第二个冲突解决程序。为什么不在冲突解决程序中同时加载这两个冲突解决程序?ngOnInit只有在所有解析完成后才会触发。@HuseinRoncevic请参阅我为回答您的澄清所做的编辑1