Когда мы наводим курсор на первый столбец таблицы, появляется всплывающая подсказка, а затем при щелчке по нажатию кнопки в диалоговом окне циновки всплывающей подсказки.
Данные загружаются, но в первый раз, когда открывается диалоговое окно строка по умолчанию не выбрана.
Примечание: (после открытия диалогового окна при выборе любой строки загружаются соответствующие ей данные, и строка выделяется, поэтому эта часть работает, но по умолчанию подсветка левой строки раздела не работает, когда всплывающее окно открывается в первый раз)
Диалог содержит 2 оставшихся раздела и Edit json и. В левой части выбранной строки отображаются соответствующие данные с правой стороны в виде json.
alert-dialog.component. html
<div class="row align-items-center">
<div class="col-6 d-flex flex-column">
<span class="sub-section p-t-26 p-b-10">Predefined Alerts</span>
<div class="alert-select">
<mat-selection-list #preDefAlertList (selectionChange)="selectionChanged($event)">
<mat-list-option #option *ngFor="let preDef of data.data; let i = index" [value]="i" [ngClass]="option.selected ? 'selected-option' : ''">
{{preDef.alert}}
</mat-list-option>
</mat-selection-list>
</div>
<span class="sub-section p-t-10 p-b-10">Custom Alerts</span>
<div class="alert-select">
Lorem ipsum
</div>
</div>
</div>
alert-dialog.component .ts
export class AlertDialogComponent {
@ViewChild(MatSelectionList) preDefAlertList: MatSelectionList;
jsonform: FormGroup;
constructor( public dialogRef: MatDialogRef<AlertDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: DialogData, private alertService: AlertService,
private fb: FormBuilder) {
console.log(data);
this.jsonform = this.fb.group({
json: [data['data'][0].conditionals]
});
}
ngOnInit(){
this.jsonform.statusChanges.subscribe(() => {
if(!this.jsonform.valid && this.jsonform.dirty){
console.log("form is dirty and not valid")
}else{
console.log("form is dirty but valid")
}
});
this.preDefAlertList.selectionChange.subscribe((s: MatSelectionListChange) => {
this.preDefAlertList.deselectAll();
s.option.selected = true;
});
}
selectionChanged(event: MatSelectionListChange) {
this.jsonform.setValue({
json: this.data['data'][event.option.value].conditionals
});
}
onAddNewAlert(){
if(!this.jsonform.valid && this.jsonform.dirty){
console.log("final validation")
}
}
}
ссылка на стек *
https://stackblitz.com/edit/angular-mat-tooltip-uwsbqa?file=app / alert-dialog / alert-dialog.component. html
Эта ссылка ниже является более старой версией до того, как я внес изменения, когда данные загружались в диалоговом окне и строка выделялась
https://stackblitz.com/edit/angular-mat-tooltip-qxxgcp?file=app%2Falert-dialog%2Falert-dialog.component.html