Вы можете обнаружить наличие элементов div и отключить кнопку, если какой-либо из них присутствует в представлении. Чтобы обнаружить эти элементы, установите для них ссылочную переменную шаблона:
<div #existingItem *ngIf="item.name !== currentPoint.name">
и отслеживайте наличие элементов с помощью ViewChildren
и QueryList
. Флаг может быть установлен, если хотя бы один элемент присутствует в представлении.
@ViewChildren("existingItem") existingItems: QueryList<ElementRef>;
public disabledButton = false;
constructor(private changeDetector: ChangeDetectorRef) {}
ngAfterViewInit() {
// Check if an element is initially present
this.disabledButton = this.existingItems.length > 0;
this.changeDetector.detectChanges();
// Monitor the addition/removal of elements
this.existingItems.changes.subscribe((existingItems) => {
this.disabledButton = existingItems.length > 0;
this.changeDetector.detectChanges();
});
}
Наконец, кнопка отключена, если установлен флаг:
<button type="submit" [disabled]="disabledButton">Submit</button>
См. этот стек для демонстрации.