[英]how to update a start and end page input field automatically when adding new row
I have a list of start and end page numbers using angularJS forms that i am repeating over. 我有重复使用angularJS形式的开始和结束页码的列表。 Currently, if a user has entered the end page to be 4 on the first row, then the start page of the second row to be automatically updated with 5 (+1 of the previous end page). 当前,如果用户在第一行输入的结束页面为4,则第二行的开始页面将自动更新为5(上一结束页面的+1)。
What i am having an issue with is....that when i add a new row of page numbers, the start page is not generated because the autoStartPageNumber function is not being triggered. 我遇到的问题是....当我添加新的页码行时,由于未触发autoStartPageNumber函数,因此未生成起始页。 So what i want to do is trigger the autoStartPageNumber function when the addRow function is triggered. 所以我想做的就是在触发addRow函数时触发autoStartPageNumber函数。
HTML: HTML:
<div class="form-group col-sm-3" ng-repeat="file in pages.items">
<label for="start">Pages </label>
<input type="number" name="startPage" class="form-control" id="start" ng-model="file.startNumber">
<label for="end"> - </label>
<input type="number" name="endPage" class="form-control" id="end" ng-model="file.endNumber" ng-change="autoStartPageNumber($index)">
</div>
<div class="row">
<div class="col-sm-2">
<a href="#" ng-click="addRow()">Add another document</a>
</div>
</div>
Controller: 控制器:
$scope.pages = {
items:[
{
startNumber:1,
endNumber:''
},
{
startNumber:'',
endNumber:''
}
]
};
$scope.autoStartPageNumber = function (index) {
if(index +1 < $scope.pages.items.length){
$scope.pages.items[index+1].startNumber=$scope.pages.items[index].endNumber + 1;
}
};
$scope.addRow = function() {
$scope.pages.items.push({
startNumber:'',
endNumber:''
});
};
solution JSFIDDLE LINK 解决方案JSFIDDLE LINK
Just check for the latest items.endNumber when adding a new row: 添加新行时,只需检查最新的items.endNumber即可:
$scope.addRow = function() {
$scope.pages.items.push({
startNumber: $scope.pages.items[$scope.pages.items.length-1].endNumber + 1,
endNumber:''
});
};
$scope.addRow = function() {
$scope.pages.items.push({
startNumber:$scope.pages.items[$scope.pages.items.length-1].endNumber +1,
endNumber:''
});
};
just assign previous endNumber to startNumber 只需将前一个endNumber分配给startNumber
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.