[英]How to get each row data of a table using Angular.js
I need one help.i want to fetch each row data of a table using Angular.js.I am explaining my code below. 我需要一个帮助。我想使用Angular.js获取表的每一行数据。我在下面解释我的代码。
<tr ng-repeat="d in days">
<td>{{d.day_name}}</td>
<td> <select class="form-control" name="catagory[$index]" id="catagory[$index]" ng-model="catagory" ng-options="cat.name for cat in listOfCatagory track by cat.value " ng-change="removeBorder('catagory',$index,catagory.value);" >
</select></td>
<td>
<select class="form-control" name="subcatagory[$index]" id="subcatagory[$index]" ng-model="subcatagory[$index]" ng-options="sub.name for sub in listOfSubCatagory[$index] track by sub.value " ng-change="setSubCatagory($index,subcatagory[$index].value);" >
<option value="">Select Subcategory</option>
</select>
</td>
<td><input type="text" name="comment[$index]" id="comment" class="form-control oditek-form" placeholder="Add Comment" ng-model="comment[$index]" ng-keyup="comment($index,comment[$index]);"></td>
</tr>
<input type="button" class="btn btn-success" ng-click="saveResturantDetails(billdata);" id="saveData" value="Save" style="margin-right:20px;"/>
When user will click on save button the each row data should fetch to the controller.I am explaining my code below. 当用户单击保存按钮时,每一行数据都应提取到控制器。我在下面解释我的代码。
$scope.saveResturantDetails=function(billdata){
for(var i=0;i< $scope.days.length;i++){
var data={'cat':$scope.catagory[i].value,'subcat':$scope.subcatagory[i].value,'comment':$scope.comment[i]};
arr.push(data);
}
console.log('arr',arr);
}
Here i am using $index
in each model so that i can get data into a loop.But in this way i am getting this following error. 在这里我在每个模型中都使用$index
,以便我可以将数据放入循环中。但是以这种方式,我遇到了以下错误。
TypeError: Cannot read property 'value' of undefined
Please help me to resolve this issue. 请帮助我解决此问题。
In your controller Declare a scope object called answers. 在您的控制器中声明一个称为答案的范围对象。
$scope.days = [{name:"m"},{name:"t"}];
$scope.answers={};
$scope.save = function(){ console.log($scope.answers)};
Then your html iterate days and assign ng-model to answers object. 然后,您的html会迭代天数并分配ng-model来回答对象。
<div><tr ng-repeat="d in days">
<td>{{d.name}}</td>
<td><input type="text" ng-model="answers['comment'+$index]"/></td>
</tr></div>
<button ng-click="save()">Save</button>
Ng Repeat creates Chid Scope so we won't get that in controller. Ng Repeat创建Chid Scope,所以我们不会在控制器中得到它。 This will definitely work. 这肯定会工作。 I Checked 我检查了
Sorry for my bad english 对不起,我的英语不好
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.