如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
How to loop through dynamically add Fields in Angular.js and get data and send it to the server?
我有这段代码用于动态添加输入字段HTML
<div ng-app="timeTable" ng-controller="addCoursesCtrl">
<button class="btn btn-primary" ng-click="addNewCourse()">Add New Course</button><br/><br/>
<fieldset ng-repeat="choice in choices">
<div class="row">
<div class="col-md-6">
<select class="form-control">
<option>Lab</option>
<option>Theory</option>
</select>
</div>
<div class="col-md-6">
<input type="text" placeholder="Enter Course Name" name="" class="form-control" />
</div>
</div>
<br/>
</fieldset>
<h2>
{{choice}}
</h2>
</div>
js
timeTable.controller("addCoursesCtrl", function ($scope) {
$scope.choices = [{id:'choice1'},{id:'choice2'}];
$scope.addNewCourse = function () {
var newITemNo = $scope.choices.length + 1;
$scope.choices.push({ 'id': 'choice' + newITemNo });
};
});
在我的控制器中,每次单击addnewCourse按钮,它都会向数组添加新的选项,在我的html中,我使用ng repeat来添加需要的输入,但我的问题是如何将数据作为对象放入数组中,我的首选对象是[{"课程":值..,"类型":值….},{"教程":值.,"类型:值…..}]并以这种形状将其发送到服务器,那么首选的方法是如何做到这一点,输入feild中的课程值,以及select中的类型值。
您想要发送到服务器的数据可以直接绑定到具有ng模型的视图。
定义服务器需要的数据(最终,在服务中这样做):
$scope.choices = [{id:'choice1', course:'', type:''},{id:'choice2', course:'', type:''}];
视图中:
...
<fieldset ng-repeat="choice in choices">
...
<input type="text" placeholder="Enter Course Name" name=""
ng-model="choice.course"
class="form-control" />
...
<select class="form-control" ng-model="choice.type">
<option>Lab</option>
<option>Theory</option>
</select>
...
转换为json发送到服务器:
var asJson = angular.toJson($scope.choices);
您只需在选择和输入中添加一个ngModel
即可。首先,创建一个具有空数组的作用域变量:
$scope.formData = [];
然后,在标记中,在repeat中添加ng-model
,并使用$index
变量来跟踪数组:
<fieldset ng-repeat="choice in choices">
<div class="row">
<div class="col-md-6">
<select ng-model="formData[$index].Type" class="form-control">
<option>Lab</option>
<option>Theory</option>
</select>
</div>
<div class="col-md-6">
<input ng-model="formData[$index].Course" type="text" placeholder="Enter Course Name" name="" class="form-control" />
</div>
</div>
<br/>
</fieldset>
这是一个jsFiddle
相关文章:
- 使用jquery将mysql数据获取到新的表行中
- 使用createContainer将Meteor数据获取到React Native中时出现问题
- 创建按钮,根据表单字段中的数据获取特定的URL
- 将JSON API数据获取到html
- 将json数据获取到数组中
- 如何将具有多个标签的多个的所有数据获取到一个数组中
- 将状态的 URL 数据获取到模板中
- 如何在jquery中将xml解析数据获取为全局变量
- 在没有JQuery的情况下将JSON数据获取到TVML项目中
- Angular js如何将索引数据获取到另一个模板中
- 如何将PHP Post数据获取到jquery ajax请求中
- 使用javascript中.data()中存储的数据获取变量
- 无法将动态数据获取到 Jquery 饼图中
- 将节点.js neDB 数据获取到变量中
- 更新页面 JSON 数据获取下拉更改
- 将数据绑定到 kendo 下拉列表时,如何将 ajax 响应数据获取到变量
- 画布图像数据获取的值不超过 102,000 个
- 如何通过 JQuery JSON 数据获取 CheckBox(@Html.CheckBox) 的值
- 从html到jquery再到php,再从php到jquery到html,将数据传递到php文件并将数据获取到php文件中
- 如何将Jquery.get中的数据获取到Javascript中的一个变量中