2016-11-28 51 views
0

有必要對話工作時,演示頁所示:如何在使用命令式對話框時爲組件提供參數?

let pDialog = this.dialogService.showCustomDialog({ 
    component: LoginDialogComponent, 
    providers: [{provide: TEST_VALUE, useValue: 'Just an example'}], 
    isModal: true, 
    styles: {'width': '350px'}, 
    clickOutsideToClose: true, 
    enterTransitionDuration: 400, 
    leaveTransitionDuration: 400 
}); 

如何提供對LoginDialogComponent參數,它應該需要一些?這甚至有可能嗎?

由於提前, Ç

+0

好了,所以我所做的就是增強「showCustomDialog」的配置,然後使用組件的MdlDialogReference訪問它。我想這是要走的路? – curiosity

+0

我對這個庫的代碼進行了窺視,但在我看來,'MdlDialogReference'不包含對要訪問的'LoginDialogComponent'實例的引用。 – philipooo

回答

0

在該示例中已經存在對應於該用例一些代碼。

providers: [{provide: TEST_VALUE, useValue: 'Just an example'}],

您可以使用此字符串Just an example注入的LoginDialogComponent的construtor。

之前,你必須初始化TEST_VALUE方式如下:獲得價值

const TEST_VALUE = new OpaqueToken("test_value"); 

然後你可以擴展你的組件構造是這樣的:

constructor(@Inject(TEST_VALUE) private myValue: string) {} 

或者

相反你也可以傳遞一個對象。這看起來是這樣的:

providers: [{provide: TEST_VALUE, useValue: <IMyDialogArgs>{ 
    foo: "foo", 
    bar: 0 
}}], 
+0

你好philipooo, 謝謝你的回答。所以如果我想傳遞幾個字符串,我將需要多個不透明的令牌? – curiosity

+0

你可以通過任何你想要的。您也可以使用不同的鍵傳遞一個對象,而不是一個字符串。我在上面添加了一個例子。 – philipooo

+0

明白了。謝謝。 – curiosity

相關問題