Я получаю от пользователя массив и передаю его в стороннюю библиотеку. Поскольку нет выражения, основанного на значениях массива, любые глубокие изменения в массиве не регистрируются для обнаружения изменений, даже с ChangeDetectionStrategy.Default
В частности,
<agm-polygon [paths]="paths"></agm-polygon>
function onUpdate(el){
this.paths.push(el);
}
не будет работать. Причина в том, что во время обнаружения изменений только зарегистрированные выражения шаблона проверяются на соответствие их предыдущему значению, и, хотя paths
зарегистрирован, свойства paths
- нет (а обнаружение изменений angular является поверхностным).
Я думаю, мне нужно зарегистрировать свойства массива как выражения шаблона, но не знаю, как.
PS Запуск CD вручную не сработает. CD запускается, он просто игнорирует свойства