2016-11-30 76 views
0

我想打開一個模式程序化的模態服務。這是我如何做到角1:如何以編程方式打開模式組件?

uibModal.open({template:'url.html', controller: MyController})這樣我就不需要添加模態HTML代碼到我的父屏幕。

比方說,我有這樣的文件夾結構:

components 
-- screen1 
---- parent.component.ts 
-- modal1 
---- modal1.component.ts 
---- modal1.template.html 
-- modal2 
---- modal2.component.ts 
---- modal2.template.html 

然後parent.component.ts我想開modal1

但由於模式我開是動態的,我想它打開像服務(或類似的東西)。因此,我將這些信息傳遞給我的parent.component其中應該打開的模式,然後使用模態服務(如在angular1中)打開模式。

我該如何解決這個問題?

謝謝!

回答

3

您可以使用angular-ui/bootstrap端口角2具有服務相當於uibModalhttps://ng-bootstrap.github.io/#/components/modal

它的用法相當於角的1.x版本 - 您只需撥打一個服務open()方法!這裏有一個例子:

export class NgbdModalComponent { 
    constructor(private modalService: NgbModal) {} 

    open() { 
    const modalRef = this.modalService.open(NgbdModalContent); 
    } 
} 

這是一個活生生的例子:http://plnkr.co/edit/4pgz0My5Mnt4VoAkIsPa?p=preview

+0

嗨,老兄,我在這裏發帖(之前檢查你的lib,因爲它是一個同我用angularjs,但它仍然處於alpha權?你會推薦我使用它嗎?謝謝:) – eestein

+0

它是_very_穩定的,我們超越Beta/RC週期(大約2周左右)。所以是的,我會說它是穩定的,並在實踐中測試過,因此可能比某些1.x庫更穩定:-) –

+0

好吧:)去吧,然後:)謝謝! – eestein