2017-04-18 121 views
0

我需要創建一個通用的解決方案,通過傳遞一些參數來從應用程序內部的任何地方打開一個模式,只需這些參數可以是大小(小,大,全屏),可忽略(真或假),最重要的參數是我需要在這個模態中顯示的組件。我的問題是如何將的完整組件傳遞給服務內部的方法。傳遞Angular2組件作爲參數

回答

0

你可以簡單地傳遞組件類爲您服務:

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) 
}