3.2.对话框使用指南

在开发之中,常常会使用到对话框,创建对话框可以通过服务方式模板方式创建。本小节中,我们来探讨一下。

一、服务方式创建(推荐使用)

关注点

使用对话框,人们常常关注的是以下问:

父组件如何传递数据给对话框?

  1. 在对话框中使用@Input() 装饰器声明对话框需要的参数

  2. 父组件中,通过 nzComponentParams 传入参数

对话框如何返回数据给父组件?

  1. 在对话框中编写方法 ,方法返回值为待返回给父组件的数据

  2. 在父组件中,通过modal.getContentComponent()或直接使用nzOnOk: (对话框组件)可以获取到对话框组件实例,通过调用步骤1中的方法获取返回值

示例

父组件部分

模板

src/app/plan/plan.component.html

控制器

src/app/plan/plan.component.ts

对话框部分

模板

src/app/plan/plan-update/plan-update.component.html

控制器

src/app/plan/plan-update/plan-update.component.ts

二、模板方式创建

关注点

使用对话框,人们常常关注的是以下问:

父组件如何传递数据给对话框?对话框如何返回数据给父组件?

  1. 在控制器中设置一个变量,作为父模板和对话框模板之间的桥梁

  2. 在父模板或对话框模板中,改变变量的值,达到数据传递的作用

示例

模板

控制器

三、对比

相比服务方式,模板方式创建对话框代码不够优雅

  • 服务方式创建对话框只需要一个方法,而模板方式却需要1-2个变量、4-5个方法

  • 模板方式需要在控制器中,手动通过变量控制对话框的显示和消失

  • 模板方式需要手动重置表单

Last updated

Was this helpful?