Javascript AngularJS具有ng重复的动态形式
我正在使用AngularJS动态表单。根据我的userid值,我使用ng repeat生成了具有相同模型名的多个表单字段。由于此ng重复,我无法获取此输入模型值。在本例中,我使用的是静态用户ID数据Javascript AngularJS具有ng重复的动态形式,javascript,angularjs,angularjs-ng-repeat,angularjs-forms,Javascript,Angularjs,Angularjs Ng Repeat,Angularjs Forms,我正在使用AngularJS动态表单。根据我的userid值,我使用ng repeat生成了具有相同模型名的多个表单字段。由于此ng重复,我无法获取此输入模型值。在本例中,我使用的是静态用户ID数据 <div ng-app="myApp"> <div ng-controller="myCtrl"> <form role="form" name='userForm' novalidate> <div class="container
<div ng-app="myApp">
<div ng-controller="myCtrl">
<form role="form" name='userForm' novalidate>
<div class="container">
<div class="row" ng-repeat="myid in userid">
<div class="form-group">
<div class="col-md-3">
<label>ID</label>
<input ng-model="myid" id="myid" name="myid" placeholder="Enter bugid" type="text" required readonly disabled>
</div>
<div class="col-md-3">
<label>Comments</label>
<textarea ng-model="manualComment" id="textarea1" rows="1" required></textarea>
</div>
<div class="col-md-3 ">
<label>Gender</label>
<select ng-model="gender" name="select2" required>
<option value="male">Male</option>
<option value="female">Female</option>
</select>
</div>
</div>
</div>
</div>
<div class="buttonContainer text-center btn-container">
<br>
<button ng-disabled="userForm.$invalid" type="button" id="adduser" ng-click="adduser">Add user</button>
<button type="button" class="btn button--default btn--small pull-center">Close</button>
</div>
</form>
</div>
我需要向我的服务器发送对象数组。我的用户ID也是动态的,因为它有100多个数据。如何获取每个数据字段模型值?如何将这些模型数据转换成像我的sampleserver数据这样的对象数组
我希望我的最终输出数据是这样的
var sampleServerData = [{
"userid": 1,
"manualcomment": "mycmt1",
"gender": "male"
}, {
"userid": 2,
"manualcomment": "mycmt2",
"gender": "male"
}, {
"userid": 3,
"manualcomment": "mycmt3",
"gender": "female"
}]
您应该将textareaid更改为类,或者在用户对象中创建一个textarea id(详细信息如下) 如果必须使用的id位于数组中,则基于您的id数组创建对象数组
var ids = [1, 2, 3];
var users = ids.map(function(id) {
return {id: id, comment: "", gender: ""};
})
我想我有一个解决方案给你,我给你做了一个。确保您点击了RunwithJS按钮,因为某些原因,它不会在加载时运行
HTML
您应该将textareaid更改为类,或者在用户对象中创建一个textarea id(详细信息如下) 如果必须使用的id位于数组中,则基于您的id数组创建对象数组
var ids = [1, 2, 3];
var users = ids.map(function(id) {
return {id: id, comment: "", gender: ""};
})
我想我有一个解决方案给你,我给你做了一个。确保您点击了RunwithJS按钮,因为某些原因,它不会在加载时运行
HTML
在你的HTML文件中,你可以这样调用ng repeat;
在你的HTML文件中,你可以这样调用ng repeat;
您可以在ng repat中使用track by$index,然后对模型使用索引
<div class="row" ng-repeat="myid in userid track by $index">
<div class="form-group">
<div class="col-md-3">
<label>ID</label>
<input ng-model="userId[$index].id" id="myid"name="myid" placeholder="Enter bugid" type="text" required readonly disabled>
</div>
<div class="col-md-3">
<label>Comments</label>
<textarea ng-model="userId[$index].manualcomment" id="textarea1" rows="1" required></textarea>
</div>
<div class="col-md-3 ">
<label>Gender</label>
<select ng-model="userId[$index].gender" name="select2" required>
<option value="male">Male</option>
<option value="female">Female</option>
</select>
</div>
身份证件
评论
性别
男性
女性
您可以在ng repat中使用track by$index,然后对模型使用索引
<div class="row" ng-repeat="myid in userid track by $index">
<div class="form-group">
<div class="col-md-3">
<label>ID</label>
<input ng-model="userId[$index].id" id="myid"name="myid" placeholder="Enter bugid" type="text" required readonly disabled>
</div>
<div class="col-md-3">
<label>Comments</label>
<textarea ng-model="userId[$index].manualcomment" id="textarea1" rows="1" required></textarea>
</div>
<div class="col-md-3 ">
<label>Gender</label>
<select ng-model="userId[$index].gender" name="select2" required>
<option value="male">Male</option>
<option value="female">Female</option>
</select>
</div>
身份证件
评论
性别
男性
女性
您还没有将数据作为对象数组获取吗?没有,我没有获取任何对象数组。即使我没有从该表单获取任何模型值。我正在从上一页获取用户id数组。在这里,我只为我的userid提供了静态数据。根据这个用户ID,我正在生成表单。我还提到了我预期的最终输出数据。请发送此示例提琴。您还没有将数据作为对象数组获取吗?没有,我没有获取任何对象数组。即使我没有从该表单获取任何模型值。我正在从上一页获取用户id数组。在这里,我只为我的userid提供了静态数据。根据这个用户ID,我正在生成表单。我还提到了我预期的最终输出数据。请发送样品小提琴为这个。这个答案对我很有帮助。根据我的新要求,我需要在页面运行后默认情况下在选择框中加载第一个选项值。我需要加载第一个值。将来,我将在选择框中加载100多个选项值,而不是性别。默认情况下,第一个选项的值应该加载到选择框中。你能发送那个提琴示例吗?这里我得到3张表格。我需要删除第二张表格和其他2张表格数据,我需要打印。这个答案对我很有帮助。根据我的新要求,我需要在页面运行后默认情况下在选择框中加载第一个选项值。我需要加载第一个值。将来,我将在选择框中加载100多个选项值,而不是性别。默认情况下,第一个选项的值应该加载到选择框中。你能发送那个提琴示例吗?这里我得到3张表格。我需要删除第二张表格和其他2张表格数据,我需要打印。我该怎么做
<div ng-app="myApp">
<div ng-controller="myCtrl">
<form role="form" name='userForm' novalidate>
<div class="container">
<div class="row" ng-repeat="myid in userId">
<div class="form-group">
<div class="col-md-3">
<label>ID</label>
<input ng-model="userId[$index].id" id="myid"name="myid" placeholder="Enter bugid" type="text" required readonly disabled>
</div>
<div class="col-md-3">
<label>Comments</label>
<textarea ng-model="userId[$index].manualcomment" id="textarea1" rows="1" required></textarea>
</div>
<div class="col-md-3 ">
<label>Gender</label>
<select ng-model="userId[$index].gender" name="select2" required>
<option value="male">Male</option>
<option value="female">Female</option>
</select>
</div>
</div>
</div>
</div>
<div class="buttonContainer text-center btn-container">
<br>
<button ng-disabled="userForm.$invalid" type="button" id="adduser" ng-click="addusers()">Add user</button>
<button type="button" class="btn button--default btn--small pull-center">Close</button>
</div>
</form>
</div>
<div class="row" ng-repeat="myid in userid track by $index">
<div class="form-group">
<div class="col-md-3">
<label>ID</label>
<input ng-model="userId[$index].id" id="myid"name="myid" placeholder="Enter bugid" type="text" required readonly disabled>
</div>
<div class="col-md-3">
<label>Comments</label>
<textarea ng-model="userId[$index].manualcomment" id="textarea1" rows="1" required></textarea>
</div>
<div class="col-md-3 ">
<label>Gender</label>
<select ng-model="userId[$index].gender" name="select2" required>
<option value="male">Male</option>
<option value="female">Female</option>
</select>
</div>