使用Angular 2反应形式通过单个复选框提交倍数值

时间:2017-07-03 13:42:00

标签: javascript angular angular-reactive-forms angular-forms

我正在寻找通过一个复选框提交多个值的最佳方式。值正在保存在服务中。

使用属性语法,我可以绑定到另一个 variables.aws.s3Client = createObject( "java", "com.amazonaws.services.s3.AmazonS3Client" ).init( createObject("java", "com.amazonaws.auth.BasicAWSCredentials" ).init( javaCast("string", variables.aws.keyId ), javaCast("string", variables.aws.secretKey) ) ); 属性。有没有办法合并自定义data-*data-*属性的值,以便在“提交”时一起发送,还是应该使用value方法以不同的方式进行处理?

模板

getAttribute()

组件

<form [formGroup]="myForm" novalidate>
    <template ngFor let-stock [ngForOf]="availableStock">
                <p><label><input type="radio" formControlName="size" [value]="stock.size" [attr.data-stock-sku]="stock.sku" [id]="stock.size">{{ stock.size }}</label></p>  
    </template>

    <p><button type="submit" (click)="onSubmit()">Submit</button></p>
</form>

编辑:为清楚起见,我想提交/保存分配给单个复选框的多个值。这些是分配给HTML中“value”属性和data-stock-sku / attr.data-stock-sku属性的值。但是在提交时,Angular默认只发送分配给'value'属性的值。

1 个答案:

答案 0 :(得分:1)

由于您使用大小作为唯一ID,我宁愿检索数据然后发送它,而不是将多个值分配给HTML组件(应该处理字符串)

onSubmit() {
    if(this.myForm.valid) {
        let userSelectedValue = this.availableStock.find(stock => stock.size === this.myForm.get('size').value);
        // Use your value here 
    } else {
        // Handle your errors yourself
    }
}