摄制:http://plnkr.co/edit/YLOf2BLMi93Jg5yOgA96Angular2通过DI模态的确认对话框未显示
我试图通过调整在http://koscielniak.me/post/2016/03/angular2-confirm-dialog-component/发现使用引导的风格,而不是材料的设计代码使用一个简单的确认模式为我angular2应用程序。
我喜欢这个确认对话框背后的想法,因为它很简单,并且以Angular2为导向:您只需在组件中注入一个服务即可调用确认对话框,并通过承诺获取结果。该服务只是:
export class ConfirmService {
public activate: (message?: string, title?: string) => Promise<boolean>;
}
通过此服务使用确认对话框。注入确认组件后,此服务的功能将绑定到该组件中的相应功能。该组件负责操纵DOM以显示对话框并将结果返回(通过Promise)。
这里是组件的构造:
constructor(confirmService: ConfirmService) {
confirmService.activate = this.activate.bind(this);
}
这样,我们不但要:
- 添加组件到根应用程序组件的模板,以便它可以在整个组件树被使用。
- 注入此服务以在任何地方使用它。
现在,这似乎工作和调试,我可以看到的是,结合元件的函数被调用,和DOM元素的引用(通过document.getElementById
了,在原来的代码,我试图尽量减少我的变化,我想使用一个绑定的@ViewChild
属性会更好)不为空。但是,当其对话框opacity
设置为1时不显示对话框,控制台中也不会显示任何错误。你可以在这篇文章的顶部引用的Plunker中轻松地看到它。任何建议?