2016-11-30 67 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