Получение длины в форме - PullRequest
0 голосов
/ 03 июля 2019

У меня есть форма, которая выглядит следующим образом:

enter image description here

и я хотел бы получить в TS длину массива «количество» и поместить ее в константу

Я пробовал это:

getLength() {

const lengthValue = this.itemsForm.controls('items').controls('quantity').length();

return lenghtValue;
}

но это совсем не работает

Спасибо за вашу помощь

Ответы [ 4 ]

0 голосов
/ 04 июля 2019

@ Адрита Шарма, @ user8351493, @ Майкл Бисон

Здравствуйте. Спасибо за вашу помощь, это помогает мне найти ответ.

Правильный синтаксис:

const lengthValue = ((this.itemsForm.get('items') as FormArray).at(0).get('quantity') as FormArray).length;
0 голосов
/ 03 июля 2019

Похоже, длина является значением, а не функцией, поэтому попробуйте удалить () с конца

getLength() {

const lengthValue = this.itemsForm.controls('items').controls('quantity').length;

return lenghtValue;
}
0 голосов
/ 03 июля 2019

Элемент управления 'items' - это FormArray, а не FormGroup.

Это означает, что вы получаете доступ к его элементам управления по индексу, а не по имени.

Элемент FormArray «количество» является элементом управленияFormGroup, которая находится в индексе 0 вашего массива 'items' formArray.Попробуйте следующее:

const lengthValue = this.itemsForm.controls('items').controls[0].controls('quantity').length;
0 голосов
/ 03 июля 2019

Попробуйте это:

getLength() {

  var arrayControl = this.itemsForm.get('quantity') as FormArray;

  const lengthValue = arrayControl.length();

  return lenghtValue;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...