如何在按下提交按钮时添加新文本框。这是我尝试过的,我知道有些事情是错的。我仍然是棱角分明的新人。
示例:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Example - example-ngController-production</title>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
<script>
angular.module('controllerAsExample', []).controller('SettingsController1', function ($scope) {
$scope.contacts=[]
$scope.addContact = function()
{
$scope.contact.push({$scope.contact})
}
});
};
</script>
</head>
<body ng-app="controllerAsExample">
<div id="ctrl-as-exmpl" ng-controller="SettingsController1">
<ul>
<li ng-repeat="contact in contacts">
<input type="text" ng-model="contact" />
</li>
<li><button ng-submit="addContact()">add</button></li>
</ul>
</div>
</body>
</html>
答案 0 :(得分:2)
您应该将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({
})
}
});
答案 1 :(得分:1)
在你的代码中,你正在做: -
$scope.addContact = function()
{
$scope.contact.push({$scope.contact})
}
这就是问题所在。如果您只需要添加一个空文本框,则只需要向联系人添加一个空联系人,ng-repeat将负责在列表中添加新文本框。另一件事是你正在接触,而不是接触。
此外,ngSubmit用于表单中,您没有。因此,请改用ng-click。这是一个显示代码工作的plunker。
$scope.addContact = function()
{
$scope.contacts.push({ name: '' });
}