【发布时间】:2020-02-05 21:41:20
【问题描述】:
我已经两次与这个问题作斗争了,所以我把它放在这里是为了提醒未来的我。如果有人有更优雅的解决方案,我很乐意将其标记为答案。
我正在开发一个可以将选项显示为单选按钮或复选框的组件。一切都很好,直到我尝试添加取消功能,我发现我无法从组件的取消功能中设置单选按钮。当我检查绑定到 Angular Material 单选组的变量的值时,它在开发工具中看起来是正确的,但它没有显示在屏幕上选择的正确选项。
这里有一个例子:https://radio-group-example.stackblitz.io
当它第一次出现时,它会要求您选择 Rush 乐队中您最喜欢的成员。它默认为 Neil Peart。选择您想要的任何人,它会在顶部显示他们的名字。但是,如果您单击“Pick Geddy”按钮,您会看到他的名字正确显示,但没有选择单选按钮。
此外,如果您从单选按钮切换到复选框并使用“切换小部件”按钮返回,则会清除所有选择。您可以选择成员并使用复选框查看他们的姓名,但如果您尝试“Pick Geddy”按钮,您会看到它显示了他的姓名,但没有选中任何复选框。
这里是挑选Geddy的功能:
private changeToGeddy() {
let weinrib = { name: 'Geddy Lee', id: 'GL' };
if (this.mutuallyExclusive) {
this.selectedOptions = weinrib;
} else {
this.selectedOptions = [weinrib];
}
}
问题是:为什么当绑定变量看起来具有正确的值时,单选按钮或复选框没有显示选择?另外,复选框和单选按钮之间的切换与问题有什么关系?
【问题讨论】:
标签: data-binding angular-material radio-group