2016-11-17 30 views
11

Tôi đã chuẩn bị từ việc sử dụng ReactiveForms do angular2/forms cung cấp. Hình thức này có một sản phẩm mảng dạng:Góc 2: Truy cập dữ liệu từ FormArray

this.checkoutFormGroup = this.fb.group({ 
      selectedNominee: ['', Validators.required], 
      selectedBank: ['', Validators.required], 
      products: productFormGroupArray 
     }); 

productFormGroupArray là một mảng của FormGroup Objects.I lấy điều khiển tức là đối tượng FormArray sử dụng này:

this.checkoutFormGroup.get('products') 

tôi đang cố gắng để có được những yếu tố trong các sản phẩm mảng tại chỉ mục i. Làm thế nào điều này có thể được thực hiện mà không lặp qua mảng?

Edit:

tôi đã cố gắng với ít phương pháp (index) có sẵn:

this.checkoutFormGroup.get('products').at(index) 

nhưng điều này đang tạo ra một lỗi như:

Property 'at' does not exist on type 'AbstractControl'. 

Chỉnh sửa 2: checkoutData và quỹ được nhận từ máy chủ.

this.checkoutData.products.forEach(product => { 
        this.fundFormGroupArray.push(this.fb.group({ 
         investmentAmount: [this.fund.minInvestment, Validators.required], 
         selectedSubOption: ['', Validators.required], 
        })) 
      }); 
+0

Hãy chia sẻ mã đó cho thấy cách bạn đã xác định 'productFormGroupArray' – ranakrunal9

+0

@ ranakrunal9 Edited các câu hỏi –

Trả lời

13

Chỉ cần cast điều khiển để mảng

var arrayControl = this.checkoutFormGroup.get('products') as FormArray; 

và tất cả các tính năng của nó là có

var item = arrayControl.at(index); 
Các vấn đề liên quan