На линейной диаграмме есть событие выбора, в котором вы можете выбрать точки и элементы легенды. Линейная диаграмма имеет свойство ввода activeElements, которое принимает массив активных элементов.
Линейная диаграмма не будет реагировать на изменения в массиве activeElements, если вы не введете его в разметку с помощью .slice() либо как локальную переменную, либо объект состояния избыточности:
[activeEntries]="array.slice()"
[activeEntries]="(array | async).slice()"
Это работает, но тогда событие (выбор) больше не запускается, когда вы нажимаете на точки.
Однако если вы удалите .slice() -- вы сможете выбрать оба -- но диаграмма больше не будет реагировать на изменения activeEntries, несмотря ни на что.
Это включает в себя наличие у activeEntries объекта состояния избыточности, где все состояние является новым объектом при каждом изменении - вызов changeDetection везде не влияет на него вообще.
Вот stackblitz: https://stackblitz.com/edit/angular-ngx-charts-testing-stuff?file=src/ -- stackblitz.
Я везде прокомментировал код и разметку, чтобы вы могли понять, что я пытаюсь сделать в коде.
Я хотел бы иметь возможность нажимать на точки + легенду при использовании .slice() или чтобы диаграмма реагировала на изменения в массиве activeEntries.