简体   繁体   English

添加新行时如何自动更新起始页和结束页输入字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM