По какой-то причине вложенные радиогруппы / кнопки нуждаются во втором цикле обновления, чтобы правильно обновить состояние по умолчанию. Одним из способов достижения этого является добавление времени ожидания 0 мс в одну из ловушек жизненного цикла перед вызовом onRadioFilterChanged()
со значением по умолчанию. Самый ранний хук, в котором я нашел это, - ngOnInit()
. Вам также необходимо установить все проверенные свойства на false
, чтобы изменение состояния могло произойти, вызывая обновление.
Итак, добавив
ngOnInit() {
setTimeout(_=> this.onRadioFilterChanged('L'), 0);
}
и установив checked: false
также над первыми флажками в каждой группе будет работать, как показано в этом обновленном stackblitz: https://stackblitz.com/edit/angular-mdgy7x-dcijkt?file=app%2Fradio-overview-example.ts
Несмотря на время ожидания 0 мс, вы заметите небольшую задержку при загрузке страницы, но кроме этогочто-то вроде взлома, это работает - и я до сих пор не смог заставить его работать каким-либо другим способом.