0
我需要創建一個通用的解決方案,通過傳遞一些參數來從應用程序內部的任何地方打開一個模式,只需這些參數可以是大小(小,大,全屏),可忽略(真或假),最重要的參數是我需要在這個模態中顯示的組件。我的問題是如何將的完整組件傳遞給服務內部的方法。傳遞Angular2組件作爲參數
我需要創建一個通用的解決方案,通過傳遞一些參數來從應用程序內部的任何地方打開一個模式,只需這些參數可以是大小(小,大,全屏),可忽略(真或假),最重要的參數是我需要在這個模態中顯示的組件。我的問題是如何將的完整組件傳遞給服務內部的方法。傳遞Angular2組件作爲參數
你可以簡單地傳遞組件類爲您服務:
service.openModal(component = AComponent, ...rest) {}
如果你想把它作爲一個字符串傳遞,你可以聲明哪些組件將要在服務中使用,並通過名字尋找他們。類似這樣的:
service.dynamicComponents = [AComponent, BComponent];
service.openModal(params = { component: 'AComponent' }) {
const component = this.dynamicComponents
.find(o => o.constructor.name === params.component)
}