5

私はAngular 2から始めて、現在バージョン2.2.2を使用しています

リアクティブフォームを書いていますが、選択したラジオボタンを初期化できません。ラジオ ボタンが選択された状態でページが読み込まれるはずですが、これは行われていません。

問題の原因を突き止めることができませんでした。Web 上のコード サンプルから、これは機能するはずだと思います。これが私のコードのスニペットです。

<form [formGroup]="consultaSolicitudesINETELForm"  (ngSubmit)="consulta(consultaSolicitudesINETELForm)">
<input type="radio" formControlName="criterio" value="1"  />
<input type="radio" formControlName="criterio" value="2"  />
<input type="radio" formControlName="criterio" value="3"  />
<input type="text" formControlName="folio" placeholder="folio" required>
 </form>

コンポーネントの

import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
@Component({
moduleId: module.id,
selector: 'my',
templateUrl: 'my.component.html',
styleUrls: ['my.component.css']
})
export class My implements OnInit {

myForm: FormGroup;

constructor(private fb: FormBuilder) {

}

ngOnInit(): void {
  this.buildForm();
}

buildForm(): void {

  this.consultaSolicitudesINETELForm = this.fb.group({
    criterio: ["2"],
    folio: ["TEST"],

  });

  this.myForm.valueChanges.subscribe(data => this.onValueChanged(data));
  this.onValueChanged();

}

編集: これは、plnkr の環境では実行されないラジオを追加した例からフォークしたものです。私が見る唯一の違いはバージョン番号です。

EDIT2:OK、ng-bootstrapと関係があることがわかりました。NgbModule.forRoot() を使用すると、ラジオ ボタンが初期化されず、期待どおりに機能しません。

ng-bootstrap 独自のラジオ ボタン グループを使用し、Web ページを再設計することで回避しました。さまざまなフィールドセットの凡例内にラジオ ボタンを配置し、すべてのコンテンツを常に表示しました。現在、ラジオはタブのように機能し、現在の選択に応じて異なる div を表示します。

ラジオ ボタンの本来の目的は、すべての要素が有効になり、他のすべてのフィールドセットのコンテンツが無効になる作業フィールドセットを選択することでした。

4

1 に答える 1