Я использую ng Smarttable и изменяю массив источника данных через событие (изменение - это изменение идентификатора значения внутри массива). Проблема в том, что angular не обнаруживает изменения, и ничего не происходит, пока я не наведу курсор на страницу или не щелкну где-нибудь.
Таким образом, изменения корректно применяются за кулисами, и угловой «видит» эти изменения, когда я щелкаю куда-то.
Так что я мог бы просто несколько раз щелкнуть вручную, чтобы увидеть свойство изменения, но это нежелательно.
Я пытался:
- использование ChangeDetectorRef внутри функции, в которой я изменяю массив (markAsChanged & DetectChange)
- ручное создание события щелчка при изменении массива
- Использование неизменяемости ( this.data = [... this.data]; )
Возможно ли иметь что-то подобное?
this.renderer.refresh();
или использовать только функциональность ng smartable?
РЕДАКТИРОВАТЬ: похоже, проблема была на моей стороне. Когда вы «обновляете» смарт-таблицу, вы получаете обещание, которое выполняется только после завершения загрузки.
Я не использовал обещание. Помещение обычного DetectChange () в обещание заставило его работать