В коде вы делаете: -
$scope.addContact = function()
{
$scope.contact.push({$scope.contact})
}
Здесь проблема. Если вам просто нужно добавить пустое текстовое поле, вам просто нужно добавить пустой контакт в контакты, а ng-repeat позаботится о добавлении нового текстового поля в список. Другое дело, что вы вступаете в контакт, а не с контактами.
Кроме того, ngSubmit используется внутри формы, которой у вас нет. Итак, используйте ng-click. Здесь plunker показывает, что код работает.
$scope.addContact = function()
{
$scope.contacts.push({ name: '' });
}
Браузеры соглашаются с ним. Однако, как синтаксические анализы библиотеки приложения это может варьироваться.
Программы , предположил собирать в группу тождественно названные объекты. В то время как спецификация HTML явно не говорит это, она неявно указана в документация относительно флажков :
флажки Several в форме могут совместно использовать то же имя элемента управления. Таким образом, например, флажки позволяют пользователям выбирать несколько значений для того же свойства.
Если у Вас есть что-то вроде этого:
<input type="hidden" name="x" value="1" />
<input type="hidden" name="x" value="2" />
<input type="hidden" name="x" value="3" />
Ваша строка запроса собирается оказаться сходством с x=1&x=2&x=3
... В зависимости от программного обеспечения сервера Вы используете для парсинга строки запроса, это не могло бы работать хорошо.
Да, и большинство серверов приложений соберет элементы соответствия и свяжет их с запятыми, такими что форма как это:
<html>
<form method="get" action="http://myhost.com/myscript/test.asp">
<input type="hidden" name="myHidden" value="1">
<input type="hidden" name="myHidden" value="2">
<input type="hidden" name="myHidden" value="3">
<input type="submit" value="Submit">
</form>
</html>
... решил бы к URL (в ПОЛУЧИТЬ случае - POST будет работать тот же путь, хотя) как это:
http://myhost.com/myscript.asp?myHidden=1&myHidden=2&myHidden=3
... и был бы представлен Вам в коде как это: (например, после чего-то как Ответ. Запишите (Запрос. QueryString ("myHidden")):
1, 2, 3
Так для захвата значений Вы только что разделили строку и получаете доступ к ним как к массиву (или независимо от того, что сопоставимо на Вашем предпочтительном языке).
(Должен быть разъяснен: В PHP это немного отличается (как Johnathan указывает, нотация скобки представляет объекты как массив к Вашему коду PHP), но ASP, ASP.NET и CF все представляют значения как разделенный запятыми список. Таким образом да, дублирующееся именование абсолютно допустимо.)
Будут варьироваться различные технологии серверной стороны. С PHP можно использовать синтаксис стиля массива для имени, чтобы вынудить набор быть созданным на конце сервера. Если отправлено на сервер, $_POST['colors']
будет массив с двумя значениями, #003366
и #00FFFF
:
<input type="hidden" name="colors[]" value="#003366" />
<input type="hidden" name="colors[]" value="#00FFFF" />
Вообще говоря, Вы захотите использовать стандартное имя без квадратных скобок. Большинство технологий серверной стороны сможет проанализировать получающиеся данные и обеспечить набор некоторого типа. Node.js обеспечивает полезную функциональность через querystring.parse
:
const querystring = require('querystring')
querystring.parse('foo=bar&abc=xyz&abc=123') // { foo: 'bar', abc: ['xyz', '123'] }