formControlName с скобками или без них?

в чем разница между использованием formControlName в скобках и без скобок? В динамической форме учебник formcontrolname используется внутри скобок

[formControlName]="dyncontrol.key"

но в других учебниках я видел его без них

formControlName="name"

3 ответов


С документация по синтаксису шаблона:

помните скобки

скобки указывают Angular для оценки выражения шаблона. Если мы забудем скобки, Angular рассматривает строку как константу и инициализирует целевое свойство этой строкой. Он не оценивает строку!

Не делайте следующую ошибку:

<!-- ERROR: HeroDetailComponent.hero expects a
Hero object, not the string "currentHero" -->
<hero-detail hero="currentHero"></hero-detail>

использование скобок означает, что значение является выражением, без скобок значение является строкой:

let a = {n: "name"};

затем [formControlName]="a.n" то же самое с formControlName="name".

все остальные атрибуты angular2 имеют одинаковый регулярный.


в скобках это свойство привязки:

[viewTargetProperty]='componentMember'

без скобок это входной элемент компонента или директивы:

<p appHighlight highlightColor="yellow">Highlighted in yellow</p>

highlightColor ввод директивы appHighLight.

так, для formControlName это вход