В реактивных формах angular, почему параметр, переданный в formControlName, передается в виде строки? - PullRequest
0 голосов
/ 07 октября 2019

Я создаю реактивную форму в угловых. Чтобы синхронизировать объект FormControl из вашего файла машинописного текста для управления формой в HTML-файле, вам необходимо использовать директиву formControlName. Это делается следующим образом:

formControlName="xyz"

, где xyz - ключ объекта FormControl, определенный в файле машинописи. Но в этом случае xyz рассматривается как строка и не будет оцениваться. Поэтому я сомневаюсь, что, поскольку xyz является ключом к объекту FormControl, он должен быть оценен и использоваться с квадратными скобками, такими как

[formControlName]="xyz"

. Я удовлетворен тем, как используется FormGroup, потому что он используется сквадратные скобки, такие как:

[FormGroup] = "abc"

, где abc - ссылка на объект на объект FormGroup, определенный в файле машинописи компонента.

Поэтому, пожалуйста, объясните, почему formControlName не используется с квадратной скобкой?

1 Ответ

3 голосов
/ 07 октября 2019

Это поведение не ограничено для formControlName, но для всех угловых свойств ввода / атрибута. Это сводится к тому, чего вы хотели достичь, и как определяется ваше руководство по угловым стилям.

1. С квадратными скобками []: Если вы ожидаете, что angular оценит ввод, переданный в formControlName, используйте []. В приведенном ниже примере angular будет обрабатывать name как свойство вашего класса машинописи и определять его значение. Например: [formControlName] = "name"

2. Без скобок: Когда вы ожидаете, что angular передаст значение в виде строки formControlName, вы не используете []. В приведенном ниже примере name строка также указывает, что вы уверены, что имя formcontrol не изменяется динамически. Например: formControlName = "name"

...