gpt4 book ai didi

angular - 如何获取 Angular 2 应用程序的根 viewContainerRef

转载 作者:行者123 更新时间:2023-12-03 22:47:56 26 4
gpt4 key购买 nike

loadNextToLocation 现在需要一个 ViewContainerRef,关于如何以正确的方式获取应用程序的根 viewContainerRef 的任何想法?

提前致谢。

更新:

我想从任何类或任何组件获取根 viewContainerRef

最佳答案

旧方式:Angular 2.0.0-rc.3

这是一个彻底的黑客攻击,绝不是获取根 ViewContainerRef 的正确方法,但我无法找到正式的方法来做到这一点。由于这些不是公共(public)属性,它们可以随时更改,并且此方法将不再有效。从 2.0.0-rc.3 开始,此方法仍然有效。

class SomeComponent {
constructor(private appRef: ApplicationRef) { }
let viewRef: ViewContainerRef = appRef['_rootComponents'][0]['_hostElement'].vcRef;
}

目前在 GitHub 上也有一个 Unresolved 问题: https://github.com/angular/angular/issues/9293

更新: Angular 2.4.2

上述方法不适用于更高版本的 Angular(截至 2.4.2)。

我现在使用的方法是这样的:

在根组件中传递 ViewContainerRef 以便您以后可以引用它:
class AppComponent {
constructor(public viewRef: ViewContainerRef) { }
}

然后在要获取根 ViewContainerRef 的组件或服务中:
class SomeOtherComponent {
constructor(private appRef: ApplicationRef) { }

let viewRef = (appRef.components[0].instance as AppComponent).viewRef;
}

上面将引入根组件的实例,并且由于您在构造函数中注入(inject)了 ViewContainerRef(并将其公开),您现在可以直接引用它。

关于angular - 如何获取 Angular 2 应用程序的根 viewContainerRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37660584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com