4

我有 Angular2 的 RC5 版本 我有类似的东西,其中一些

<input formControlName="uploadType" id="upload_type-parts_service" name="uploadType" value="parts_service" type="radio" />

我绑定了一个 onchange

(change)=onUploadTypeChange( ??? )

然后我在我的js中定义了函数

onUploadTypeChange( uploadType ) {
    this.uploadType = ...
}

我很难获得单选按钮的值。我的计划是将它传递给 onchange 函数并更新uploadType在视图中显示/隐藏某些元素的值。我试过通过thisthis.valuethis.type.controls.uploadType.value但没有任何效果。type是表单本身。

有人可以指出我将如何获得反应形式的价值吗?

4

2 回答 2

2

感谢msanford在评论中提出的问题,我发现$event需要通过

onUploadTypeChange( $event )

然后在我的js中

onUploadTypeChange( e ) {
    this.uploadType = e.target.value;
}

返回输入target本身

我正在绑定收音机的值,[value]=...但这对于反应形式来说是不需要的,它会导致问题。我只用values="..."

现在一切正常,并{{ this.type.controls.uploadType.value }}打印出预期值

于 2017-02-27T16:09:42.400 回答
1

你有没有尝试过这样的事情?这会监视值的变化并将订阅放在 ngAfterViewInit() 方法中。

<div class="form-group" [ngClass]="{'has-error': displayMessage.Repeatable }">
      <label class="control-label" for="Repeatable">Repeatable</label>
      <input type="radio" id="Repeatable" [checked]="checked" 
          formControlName="Repeatable" />{{repeatableValue | uppercase}}              
</div>

// Component

ngAfterViewInit(): void {
    console.log('ngAfterViewInit');

    this.setForm.get('Repeatable').valueChanges.subscribe(value => this.repeatableValue = value.toString());
}
于 2017-02-27T16:17:06.163 回答