javascript - Angular 7 radio [attr.value] 破坏了 [ngModel] 功能

标签 javascript angular radio-button

我有一个包含 4 个 radio 输入元素的列表,由 *ngFor 生成。 当我使用 [attr.value]="ans.name" 使用 ngModel 时,在每个单选元素上 在我使用 value="{{ans.name}}"

之前,此功能不起作用

下面是破坏代码示例。

<li *ngFor="let ans of question.answers; let i = index;">
  <label class="custom-radio" [attr.tabindex]="i+1" [attr.for]="'op-'+i"> {{ans.name}}
    <input type="radio" name="answer" [attr.value]="ans.name" [attr.checked]="selectedAnswer === ans.name" [attr.id]="'op-'+i" [(ngModel)]="selectedAnswer">
    <span class="checkmark"></span>
  </label>
</li>

这是工作示例。

<li *ngFor="let ans of question.answers; let i = index;">
  <label class="custom-radio" [attr.tabindex]="i+1" [attr.for]="'op-'+i"> {{ans.name}}
    <input type="radio" name="answer" value="{{ans.name}}" [attr.checked]="selectedAnswer === ans.name" [attr.id]="'op-'+i" [(ngModel)]="selectedAnswer">
    <span class="checkmark"></span>
  </label>
</li>

我不太明白。

最佳答案

所有 DOM 原生属性不得使用 [attr.value] 设置,而只能使用 [value][id] 设置、[name] 或任何属性。 value="{{ans.name}}" 语法也是有效的(如果它是 string 类型),但双 mustache 语法更适合字符串模板,在你的情况[value]="ans.name"更好。

[attr.my-attr] 语法用于自定义属性。

关于javascript - Angular 7 radio [attr.value] 破坏了 [ngModel] 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57483010/

相关文章:

javascript - 如何修复 Angular 中未定义的形式错误 'validate'

php - 四个问题中只有一个单选按钮被选中

javascript - 如何在运行时更改 safari 扩展的高度?

javascript - nodejs crypto 和 CryptoJS 提供不同的 base64(sha256(data)) 输出

angular - 如何在使用 Ionic、Capacitor 和 Angular 开发的应用程序中取消一个本地通知?

typescript - 动态加载自定义元素中的组件

javascript - 如何设置数组以便在不使用 jQuery 的情况下获取单选按钮值

javascript - 如何在 jquery 中使用 name 和 attr 设置选中的单选按钮?

javascript - 过滤函数返回未定义

javascript - 从 Polymer 元素内写入 Firebase