在angular 2中,是否可以手動實例化組件A,然後將它傳遞並呈現在組件B的模板中?是否有可能在角度2中手動實例化組件
6
A
回答
0
是的,這是支持的。您需要一個ViewComponentRef
,例如可以通過將其注入到構造函數中或使用@ViewChild('targetname')
查詢和ComponentResolver
來獲取,該ComponentResolver
也可以注入。
從https://stackoverflow.com/a/36325468/217408此代碼示例例如允許與*ngFor
@Component({
selector: 'dcl-wrapper',
template: `<div #target></div>`
})
export class DclWrapper {
@ViewChild('target', {read: ViewContainerRef}) target;
@Input() type;
cmpRef:ComponentRef;
private isViewInitialized:boolean = false;
constructor(private resolver: ComponentResolver) {}
updateComponent() {
if(!this.isViewInitialized) {
return;
}
if(this.cmpRef) {
this.cmpRef.destroy();
}
this.resolver.resolveComponent(this.type).then((factory:ComponentFactory<any>) => {
this.cmpRef = this.target.createComponent(factory)
});
}
ngOnChanges() {
this.updateComponent();
}
ngAfterViewInit() {
this.isViewInitialized = true;
this.updateComponent();
}
ngOnDestroy() {
if(this.cmpRef) {
this.cmpRef.destroy();
}
}
}
+1
這個例子不允許用數據實例化一個組件。 – dopatraman
+0
不確定你的意思。鏈接答案中更完整的示例顯示瞭如何傳入和傳出數據。 –
相關問題
- 1. 是否有可能在php中實例化一個函數?
- 2. 是否有可能從動態var實例化一個類?
- 3. 是否實例化組合對象在Java中實例化它們的組件
- 4. 是否有可能做角2+
- 5. 角度2檢查組件上的型號是否變化
- 6. Angular 2 - 實例化(Http)服務手動
- 7. 是否有可能在Rails 4中動態創建實例?
- 8. 是否有可能使用角度2與非restapi後端?
- 9. 服務構造函數如何在角度2中實例化?
- 10. 是否可以「手動」在Java中創建java.lang.Method實例?
- 11. 在SSL握手中,是否有可能顛倒角色?
- 12. 是否有可能使Spring僅在繼承中實例化父bean(而不是實例化子bean)?
- 13. 角2 - 獲取組件實例
- 14. PHP - 是否有可能實例化太多對象
- 15. vim:是否有可能在選項卡中有新的實例
- 16. 跨多個組件實例的角度2全局變量
- 17. 是否有可能在代碼中檢索LinearGradientBrush的角度?
- 18. 在每個組件中自動注入組件 - 角度2
- 19. UIPickerView的組件寬度是否可以手動調整?
- 20. 是否有可能在手機上直接運行角度js應用程序
- 21. 是否有可能在使用RestSharp反序列化時實例化Null值
- 22. 是否有可能將數組聲明爲實例變量?
- 23. 手動實例化PresenterWidget(GWTP)
- 24. 手動實例化Spring MongoRepository
- 25. 是否有可能具有命名的角度配置功能?
- 26. 是否有可能在Java或C#中實例化泛型類型的對象?
- 27. 是否有可能將已在類中聲明的實例全局化?
- 28. 是否有可能在Scala中序列化非案例類?
- 29. 是否有可能使用Commons Bean Utils自動實例化嵌套Property?
- 30. 是否有可能在JavaScript中獲得窗口實例somehome?
歡迎動態添加組件,所以請檢查這個[URL](http://stackoverflow.com/help)將幫助你提高你的問題內容質量 –