Angular 2:如何使指令仅在组件初始化后执行某些操作?

Angular 2:如何使指令仅在组件初始化后执行某些操作?,angular,Angular,我正试图使它在组件初始化时正确执行指令,但我有异步问题 我的指令中有: ngOnInit(): void { this._myCentralSvc.sendMessage('receiveUpdates', runMeOnUpdates) } runMeOnUpdates(): void { // function code to alter component's state via Renderer and nativeElement } 该指令是组件模板中HTML元素的属性,

我正试图使它在组件初始化时正确执行指令,但我有异步问题

我的指令中有:

ngOnInit(): void {
  this._myCentralSvc.sendMessage('receiveUpdates', runMeOnUpdates)
}

runMeOnUpdates(): void {
 // function code to alter component's state via Renderer and nativeElement  
}

该指令是组件模板中HTML元素的属性,需要在组件初始化时更改HTML元素。

请提供更多详细信息。我没有看到任何异步的东西,也没有看到任何可能导致问题的东西。我又看了一遍。我假设“sendMessage”是通过myCentralSvc触发的某种异步调用。所以RunmeOnUpdate迟早会返回。同时,您还保留了一个组件,用于存储所需的某些数据。在该调用返回之前,您不能对该数据段使用默认值吗?您是否有超过一次使用该指令的情况,并且只想为所有这些数据段发送一条消息?那么静态变量就是答案。蒂姆·康索拉齐奥,你的理解是正确的。只是澄清一下,sendMessage不是对外部资源(如http)的调用,更像是获取应用程序状态中其他位置存在的值。但我相信这仍然是一个异步问题,因为组件挂起了?该组件还具有自己的ngOnInit/NgaAfterViewInit状态。Daniel Kucal,该组件用于一个视频,并且应用程序中有多个视频。我还考虑了全局变量的使用——这就是你所说的静态变量吗?