так.
есть объект с интерфейсом
foo: {
bar: BehaviorSubject<{ baz: number }[]>
}
в шаблоне пишу foo.bar | async | json, и не вижу обновления, пока changeDetector руками не дёрну.
при этом если в коде написть foo.bar.subscribe(console.log), то там данные норм обновляются.
Куда копать?
копай вверх
Откуда делается некст в сабжект?
откуда б не делался, должно работать, разве что он перезаписывает свойство с сабжектом. да и то должно чекнуть на проверке
это не так, потому что тики не возникают сами по себе. если next вызывается, например, из кастомного ивента, который не пропатчен зоной, то дерево не проверится https://stackblitz.com/edit/angular-ivy-pst6x5?file=src%2Fapp%2Fapp.component.ts
сабжект должен быть пропатчен зоной. хотя надо проверять
да ты прав, пропатчен https://github.com/angular/angular/blob/main/packages/zone.js/lib/rxjs/rxjs.ts#L166
что есть "пропатчен"? в твоём же примере всё ок?
потому что там явный выход из зоны. только вообще кажется, что zone-patch-rxjs не идет вместе с дефолтным пакетом. но я не знаю, как протестить только next https://github.com/angular/angular/blob/main/packages/zone.js/NON-STANDARD-APIS.md#usage
так должно обновиться?
нет, ты же вне зоны. я не знаю, как протестить отдельно next)
а обновляется
может там еще другое событие было, которое запустило апп тик
пример кода выше на стекблице
та я все равно с телефона не смотрю :)
Обсуждают сегодня