在复杂对象上绑定单选按钮的Angular 4被动表单不起作用

在复杂对象上绑定单选按钮的Angular 4被动表单不起作用,angular,angular-forms,Angular,Angular Forms,当值最初添加到表单时,gradingKey.currentAnswer未绑定到单选按钮 为什么它不起作用 这在angular 4之前工作过一次,请参见: HTML 模型 您可以向无线电组添加[checked]属性,该属性可以是一条语句,用于评估是否应检查无线电。只要单击设置值,问题是无线组没有反映更改的数据,它可能会对您起作用 有关答复: 因此,假设您的代码在其他任何地方都能正常工作,类似这样的东西应该可以工作: <input type="radio" (ngModelCha

当值最初添加到表单时,gradingKey.currentAnswer未绑定到单选按钮

为什么它不起作用

这在angular 4之前工作过一次,请参见:

HTML

模型


您可以向无线电组添加[checked]属性,该属性可以是一条语句,用于评估是否应检查无线电。只要单击设置值,问题是无线组没有反映更改的数据,它可能会对您起作用

有关答复:

因此,假设您的代码在其他任何地方都能正常工作,类似这样的东西应该可以工作:

  <input type="radio"      (ngModelChange)="onChangeHalfScoresErrorsCount($event)"
    formControlName="halfScoresCount" [value]="answer" [checked]="answer === currentAnswer">

checked属性真的应该用于被动表单吗?很酷,如果它对您有效,您可能会接受答案,因为它在评论部分受到了一些批评,但您似乎知道如何使用堆栈溢出,所以我将留给您。您能创建一个plunker吗,因为我不会在这里使用checked属性,有一个可以修补的东西会有帮助。目前没有足够的代码来重现这个问题。所以。。。您是否已经尝试用上述代码重新编程错误?事实上,一切都在那里,一切都是需要的。我可以稍后创建一个plunkr。。。
 ngOnInit() {

    this.gradingKeyForm = this.fb.group({       
      halfScoresCount:   this.gradingKey.currentAnswer,
     });
}
import KeyValue from '../keyvalue';
import { IGradingKey } from './shared/grading-key-interface';

export default class GradingKey implements IGradingKey {

  halfScoresCountAnswers: KeyValue<boolean, string>[];
  currentAnswer: KeyValue<boolean, string>;

  constructor(obj: any) {
    this.halfScoresCountAnswers = [new KeyValue(true, 'Ja'), new KeyValue(false, 'Nein')];
    this.currentAnswer = obj.halfScoresCount == true ? this.halfScoresCountAnswers[0] : this.halfScoresCountAnswers[1];
   }
}
  <input type="radio"      (ngModelChange)="onChangeHalfScoresErrorsCount($event)"
    formControlName="halfScoresCount" [value]="answer" [checked]="answer === currentAnswer">