在使用命令式对话框时,如何为组件提供参数?

时间:2016-11-28 15:24:53

标签: angular angular2-mdl

使用命令式对话框时,如演示页面所示:

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提供参数?这甚至可能吗?

提前致谢, ç

1 个答案:

答案 0 :(得分:0)

在该示例中,已经有一些针对此用例的代码。

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

您可以使用它将字符串Just an example注入LoginDialogComponent的构词。

在必须以下列方式初始化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
}}],