html - 嵌套多个 mat-radio-button 未按预期工作
问题描述
我有 mat-radio-group,里面有更多的 mat-radio-group。我在这里创建了一个 stackblitz https://stackblitz.com/edit/angular-mdgy7x?file=app/radio-overview-example.ts
在页面加载的示例中,我想显示选择的“分类帐”单选选项以及它下面的 value1 作为默认选择。如果我将单选按钮更新为“可用”,我需要选择“可用”单选下方的“值 1”。
该代码适用于所有情况,除了我必须显示默认选择的第一种情况。
有人能指出我哪里出错了吗?
解决方案
出于某种原因,嵌套单选组/按钮需要第二个更新周期才能正确更新默认状态。实现此目的的一种方法是在onRadioFilterChanged()
使用默认值调用之前在其中一个生命周期挂钩中添加 0ms 超时。我发现这个工作的最早的钩子是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 毫秒超时,但您会注意到页面加载略有延迟,但除此之外以及它的那种 hack-ish 感觉,它可以工作 - 我无法让它在任何情况下工作到目前为止的其他方式。
推荐阅读
- flutter - Flutter:我没有得到网站的回复
- java - Selenium 4 和 Grid 4.0.0-rc-2-20210930 使用 Ashot 在全页截图中出现问题
- python - 在哈希集中保留非素数与创建布尔数组之间的空间和时间复杂度有什么区别?
- python - 网页抓取 Yahoo Industry
- tensorflow - 如何替换张量流图中的“开关”运算符?
- excel - 在我的 excel 宏中使用 FieldInfo = Array(Array(0, 2), Array(10, 2), Array(15, 2)) 的问题
- python - 带有“有”和“分组依据”的 Django ORM 查询
- reactjs - 使用 react-testing-library 测试模拟商店时遇到问题
- java - maven javadoc插件:使用外部JAR时包不存在
- python - Python 将 curl 命令转换为 urllib.request