angular - 角度单选按钮与模型不同步
问题描述
当后续问题中存在相同的标签时,我遇到了一个问题,即我的单选按钮(视图)与我的模型(反应形式)不同步。
我正在创建某种调查应用程序,该应用程序(当然)包含多个问题,但是当2个后续问题包含相同的答案标签时,在选择其中一个并在两个问题之间导航时,该视图不同步。我创建了一个Stackblitz来说明这个问题。(相同的 Stackblitz没有材料)
复制步骤错误选择:
- 选择问题 1 的第二个选项(“MRX”)。
- 单击“下一步”按钮(答案存储在模型中)。
- 再次为问题 2 选择第二个选项(“Ibanez”)。
- 单击“上一个”按钮(答案存储在模型中)。
- 再次单击“下一步”按钮。
- 现在您可以看到视图与模型不同步(模型也打印在屏幕上)。
复制步骤双选:
- 选择问题 1 的第一个选项(“Ibanez”)。
- 单击“下一步”按钮(答案存储在模型中)。
- 选择问题 2 的第二个选项(“Inbanez”)。
- 单击“上一个”按钮(答案存储在模型中)。
- 现在您可以看到选择了 2 个选项(第一个和第二个)。
有关该应用程序的更多信息,我在 stackblitz 的父组件 (survey-parent.component.html) 中添加了描述。
我不确定这是 Angular 中的错误还是我在这里做错了什么。
解决方案
如何根据给定的答案设置 [checked] 属性?
<mat-radio-group formControlName="answer">
<ng-container *ngFor="let questionAnswer of surveyQuestion.answers; let i = index">
<mat-radio-button [checked]="isSet(i+1)" color="primary" [value]="i+1">{{questionAnswer}}</mat-radio-button>
<br /><br />
</ng-container>
</mat-radio-group>
在 ts 文件中:
isSet(i: number){
return i ===this.surveyQuestion.givenAnswer;
}
我已经更新了片段:
推荐阅读
- go - 在将其导入 BigQuery 之前,CSV 中的日期格式
- c++ - 使用 XPath 在 QDomDocument 中搜索节点
- linkedin - API v2 资产调用返回“Enforced Tenant ACL 结果:false”是什么?
- react-native - 如何在移动应用程序中的 webrtc 通信音频流上对文本执行连续语音
- python - 如何在 python pandas 的整数列上使用 .map
- powershell - PowerShell:向自定义对象添加“行”
- node.js - WebSocket 在 15 - 20 分钟的数据流后停止接收数据 - NodeJS
- javascript - 向单元格添加点击功能(生命游戏)
- html - 使用 xPath 在文本中查找具有特定单词的跨度
- python - 如何先输入所有数据,然后在 python 中给出所有输出?