angularjs формата не може да препраща към контрола на входа, когато името на входа е масив

Срещам проблем при тестване на валидиране на формуляр с angularjs

Според ръководство за формуляри на angularjs,

входна контрола, която има директивата ngModel, съдържа екземпляр на NgModelController. Такъв контролен екземпляр може да бъде публикуван като свойство на екземпляра на формуляра, като се използва атрибутът name на входния контрол.

Създадох тестов код в 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