攝製: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中輕鬆地看到它。任何建議?