微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angular – 将输入值传递给Dialog Component

参见英文答案 > Working example of Angular 2.0 Material MdDialog with Angular 2.0                                    1个
我正在实现material2的对话框组件并面临这个问题:

我想为所有确认类型的消息创建一个通用对话框,开发人员可以根据业务需求将文本输入到对话框中.但根据docs,没有这样的规定.我们是否有相同的解决方法,或者我应该将其作为github上的功能请求发布?

export class ConfirmationDialogComponent implements OnInit {

@input() confirmationText: string;
@input() confirmationTitle: string;
@input() confirmationActions: [string,string][] = [];

constructor(public dialogRef: mddialogRef<ConfirmationDialogComponent>) {
}

ngOnInit() {
}

}

这样打电话:

let dialogRef = this.dialog.open(ConfirmationDialogComponent);

解决方法

open会给你组件实例,意味着你可以像这样注入你想要的东西:

openDialog() {
    let dialogRef = this.dialog.open(DialogoverviewExampleDialog);
    let instance = dialogRef.componentInstance;
    instance.text = "This text can be used inside DialogoverviewExampleDialog template ";
    console.log('dialogRef',dialogRef);
  }

然后显然在DialogoverviewExampleDialog模板中你可以做到:

this is the text {{text }}

Plunker

我通常会做什么,我会创建一个我的Component理解的配置对象,然后在打开模态时我会传递它:

private config = {
    title :"Hello there ",text :"What else ? "
 };

 openDialog() {
    let dialogRef = this.dialog.open(DialogoverviewExampleDialog);
    let instance = dialogRef.componentInstance;
    instance.config = this.config;
    console.log('dialogRef',dialogRef);
  }

然后在模态组件内:

<div class="my-modal">
   <h1>{{config.title}}</h1>
   <p>{{config.text}}</p>
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐