Форма angularjs не может ссылаться на элемент управления вводом, когда имя ввода является массивом

Я сталкиваюсь с проблемой при тестировании проверки формы с помощью angularjs

Согласно руководству по формам angularjs,

элемент управления вводом с директивой ngModel содержит экземпляр NgModelController. Такой экземпляр элемента управления может быть опубликован как свойство экземпляра формы с использованием атрибута имени в элементе управления вводом.

Я создал тестовый код в plunker, все работает нормально, пока я не изменю имя ввода с

<input type="number" name="age" ng-model="user.age" max="100" required>

<p>{{form1.age.$error}}</p>

to

<input type="number" name="user[age]" ng-model="user.age" max="100" required>

<p>{{form1.user[age].$error}}</p>

Означает ли это, что angular не может распознавать синтаксис массива при вводе формы?

Проблема для меня в том, что я хочу сохранить нормальный поток отправки формы и использовать только angular для проверки формы, поэтому мне нужно сохранить ввод формы в виде массива для работы с обработкой бэкэнд-формы.


person fuyi    schedule 21.04.2014    source источник
comment
Что вы пытаетесь получить, устанавливая динамическое имя для элемента?   -  person Brocco    schedule 22.04.2014


Ответы (1)


Это не имеет ничего общего с Angular. Это синтаксическая ошибка JS.

Если вы хотите сослаться на свойство с именем user[age], вы должны сделать это следующим образом:

form1['user[age]'].$error

form1.user[age] неправильно интерпретируется как (form1.user)[age]

person gkalpak    schedule 21.04.2014