Angular 区分由同一父对象创建的两个角度组件

Angular 区分由同一父对象创建的两个角度组件,angular,bootstrap-modal,Angular,Bootstrap Modal,我有一个仅显示消息的模态组件和一个接受按钮 accept按钮将执行一项功能,具体取决于给您打电话的人 同一个组件可以创建多个模态(在不同的时刻显示) 我遇到的问题是,要打开模式,我必须通过其id调用它,但所有模式都是使用相同的id创建的。我曾想过通过@Input decorator为每个模式创建一个唯一的id,但由于它是一个大型应用程序,两个开发人员可能会以相同的方式调用它并产生冲突 如何为每个元素创建一个唯一的id,而不必将其作为@Input传递 我试着做一个示例,但是jquery有问题 无论

我有一个仅显示消息的模态组件和一个
接受按钮

accept按钮将执行一项功能,具体取决于给您打电话的人

同一个组件可以创建多个模态(在不同的时刻显示)

我遇到的问题是,要打开模式,我必须通过其id调用它,但所有模式都是使用相同的id创建的。我曾想过通过
@Input decorator
为每个模式创建一个唯一的id,但由于它是一个大型应用程序,两个开发人员可能会以相同的方式调用它并产生冲突

如何为每个元素创建一个唯一的id,而不必将其作为
@Input
传递

我试着做一个示例,但是jquery有问题

无论如何,这是一次尝试


我不完全理解您的问题,但您可以将数据传递给对话框(在本例中为id)。像这样的,

parent.component.ts

dialog.component.ts

构造函数(
公共dialogRef:MatDialogRef,
@注入(MAT_对话框_数据)公共id:编号
) { }
onAccept(){
this.dialogRef.close(this.id);
}

我找到了一个解决方案,尽管它看起来有些混乱

在指令中,我添加了一个ngif,这样它只有在某个特定值时才可用

<confirmation-modal *ngIf="expression == 'roles'" [header]="'ARE_YOU_SURE'" [message]="'SENDED_MESSAGE'" (launchAction)="modal1Accepted()">

为什么模态对动作负责?它对动作不负责。。。只有emmit的回应和家长做的行动。。。但是我需要知道哪个模态会发射它。非常感谢,但是我想有一个像这样的组件
,也许你的可以工作,但我看起来不那么优雅,也许doSomething()在接近时会跳跳跳,即使它不被接受。我试着做一次闪电战。。。我附上主要的询问。
constructor(
    public dialogRef: MatDialogRef<DialogChacraFormComponent>,
    @Inject(MAT_DIALOG_DATA) public id: number
) { }
onAccept() {
    this.dialogRef.close(this.id);
}
<confirmation-modal *ngIf="expression == 'roles'" [header]="'ARE_YOU_SURE'" [message]="'SENDED_MESSAGE'" (launchAction)="modal1Accepted()">
openRolesModal() {
this.expression = 'roles';
let modal = '#selectAttributtesModal';
setTimeout(() => $(modal).modal('show'), 100);
}