Я знаю, что в этом конкретном случае можно использовать Angular Signals, чтобы избежать постоянного вызова функции isVisible. Но у меня нет опыта работы с этой новой функцией, и я не могу понять, что изменить в своем коде, чтобы воспользоваться преимуществами сигналов. Я вставил ниже упрощенный фрагмент своего кода, просто для общего представления.
Что мне следует изменить, чтобы это работало с Signals?
visibleSections = [];
sectionConfig = [
{
name: 'someComponent',
hidden: false
},
{
name: 'otherComponent',
hidden: false
}
];
ngOnInit() {
this.visibleSections = this.sectionConfig.filter(c => !c.hidden);
}
public isVisible(section): boolean {
return this.visibleSections.findIndex(s => s.name === section) > -1;
}
public setSectionVisibility(e: any): void {
this.sectionConfig.find(c => c.name === e.itemValue.name).hidden = e.value.findIndex(p => p === e.itemValue) === -1;
}
HTML:
@if (isVisible("someComponent")) {
}
@if (isVisible("otherComponent")) {
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... components