Диаграмма не отображает активные записи, если я не установил для нее значение array.slice() в разметке, это отключит выбор точек – Stackblitz внутри

На линейной диаграмме есть событие выбора, в котором вы можете выбрать точки и элементы легенды. Линейная диаграмма имеет свойство ввода 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.


person SebastianG    schedule 09.05.2019    source источник


Ответы (1)


На самом деле для выделения активных записей требуется гораздо больше времени, и это было чистое совпадение, что вызов .slice вообще сработал.

То, что мне было нужно, на самом деле еще не было функцией.

person SebastianG    schedule 04.11.2019