假设我有一个Angular2组件,<my-button>
并且我想在单击按钮时显示的下拉菜单中为要渲染的选项提供输入.我有菜单组件<my-menu>
,<my-button>
如果有传入选项,它会在模板中有条件地呈现.
也许我可以绝对定位<my-menu>
,<my-button>
以实现所需的定位.但也许我不能因为我有overflow:hidden
一个包含元素而且会剪辑<my-menu>
.所以不是我需要呈现<my-menu>
的<body>
,它完全定位到<my-button>
.
有没有办法渲染<my-menu>
到<body>
即使它被放置在模板内<my-button>
呢?
谢谢!
你可以这样做,但它很复杂.
declarations
和entryComponents
ViewContainerRef
将其注入应用程序组件.ComponentFactoryResolver
,也使用注射.使用这样的东西:
private resolverFactory:ComponentFactoryResolver;
private viewContainer:ViewContainerRef;
var compFactory:ComponentFactory<Frame> = this.resolverFactory.resolveComponentFactory(Frame);
var cmpRef:ComponentRef<Frame> = this.viewContainer.createComponent(compFactory, this.viewContainer.length);
Run Code Online (Sandbox Code Playgroud)删除组件:
cmpRef.destroy();
Run Code Online (Sandbox Code Playgroud)不,没有。
您可以在您的外部引导一个组件AppComponent
并使用共享服务进行通信。
https://github.com/angular/angular/issues/9293AppComponent
中讨论了一些关于动态创建同级组件的讨论,但尚不清楚是否、如何或何时会实现。
归档时间: |
|
查看次数: |
4985 次 |
最近记录: |