В принятом ответе отсутствует точка:
{
let a = 123;
};
console.log(a); // ReferenceError: a is not defined
В коде вы делаете: -
$scope.addContact = function()
{
$scope.contact.push({$scope.contact})
}
Здесь проблема. Если вам просто нужно добавить пустое текстовое поле, вам просто нужно добавить пустой контакт в контакты, а ng-repeat позаботится о добавлении нового текстового поля в список. Другое дело, что вы вступаете в контакт, а не с контактами.
Кроме того, ngSubmit используется внутри формы, которой у вас нет. Итак, используйте ng-click. Здесь plunker показывает, что код работает.
$scope.addContact = function()
{
$scope.contacts.push({ name: '' });
}
Вы должны заменить ваш ng-submit
на ng-click
, который решит вашу проблему. И с этим вам нужно изменить структуру объекта, чтобы сохранить значение, например, вам нужно добавить номер контакта в контактном объекте, например contact.number
Пометка
<ul>
<li ng-repeat="contact in contacts">
<input type="text" ng-model="contact.number" />
</li>
<li>
<button type="button" ng-click="addContact()">add</button>
</li>
</ul>
Код
angular.module('controllerAsExample', [])
.controller('SettingsController1', function($scope) {
$scope.contacts = []
$scope.addContact = function() {
$scope.contacts.push({
})
}
});