Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在初始化时或在初始化后获取子组件名称?_Javascript_Angular_Components_Application Lifecycle - Fatal编程技术网

Javascript 如何在初始化时或在初始化后获取子组件名称?

Javascript 如何在初始化时或在初始化后获取子组件名称?,javascript,angular,components,application-lifecycle,Javascript,Angular,Components,Application Lifecycle,我一直在研究Angular的,同时寻找一种方法来知道何时以及哪些子组件被加载 我看到ngAfterViewInit() “在Angular初始化组件的视图和子视图后响应 观点。” 既然ngAfterViewInit知道这些孩子的情况,我如何在他们初始化时(或之后)获取他们的标识信息 类似于以下伪代码: // ngAfterViewInit() - Respond after Angular initializes the component's views and child views. ex

我一直在研究Angular的,同时寻找一种方法来知道何时以及哪些子组件被加载

我看到
ngAfterViewInit()

“在Angular初始化组件的视图和子视图后响应 观点。”

既然ngAfterViewInit知道这些孩子的情况,我如何在他们初始化时(或之后)获取他们的标识信息

类似于以下伪代码:

// ngAfterViewInit() - Respond after Angular initializes the component's views and child views.
export class AppComponent implements AfterViewInit {
    ngAfterViewInit() {
        console.log(‘Children should be loaded');
        // loop through ngAfterViewInit
        querySelector('body').classList.add(ngAfterViewInit[i].componentName);
    }
}

旁注:目标是将组件名称或选择器名称添加到
的类列表中。

这是什么?识别信息据我所知,为了让组件彼此通信,您需要使用
@Output
属性。当子组件初始化时,您可以广播父组件订阅的事件。但是考虑到您正在尝试执行的操作,我想知道您是否可以命名子组件并在标记中直接引用它们。你能提供一些你想做的事情的代码片段吗?嘿@JakeSmith这就是我开始做的地方,但事实证明,生命周期挂钩没有使用
@input
@output
。我不想在我的应用程序中的每个组件上都设置I/O,如果不需要的话,只是为了获得名称。(我将用一些psuedo代码更新问题)明白了。我想如果我对你的代码了解多一点的话,我会帮上大忙的。如果组件没有动态加载,您应该能够执行类似于
的操作,然后在您的body标签上:
这是什么?识别信息据我所知,为了让组件彼此通信,您需要使用
@Output
属性。当子组件初始化时,您可以广播父组件订阅的事件。但是考虑到您正在尝试执行的操作,我想知道您是否可以命名子组件并在标记中直接引用它们。你能提供一些你想做的事情的代码片段吗?嘿@JakeSmith这就是我开始做的地方,但事实证明,生命周期挂钩没有使用
@input
@output
。我不想在我的应用程序中的每个组件上都设置I/O,如果不需要的话,只是为了获得名称。(我将用一些psuedo代码更新问题)明白了。我想如果我对你的代码了解多一点的话,我会帮上大忙的。如果组件没有动态加载,您应该能够执行类似于
的操作,然后在您的body标签上: