javascript - 每次在 javascript 中添加新行时如何获得递增的 ordre 值

标签 javascript angularjs

我有这个代码来增加 order 值:

$scope.addElement = function (_ordre) {

       console.log("_ordre 1"+_ordre);

       if(_ordre == undefined){
           _ordre = 0;


       if( _ordre == 0){
           _ordre = (parseInt(_ordre) + 1).toString();

       }

       }
       console.log("_ordre 2 "+_ordre);

   console.log("_ordre 3 "+_ordre);


        var tmpElement = {
                  ordre:(_ordre === undefined) ? (parseInt($scope.finalOperationsList[$scope.finalOperationsList.length-1].ordre) + 1 ): _ordre,
                  temps : '',
                  designation:'',
                  disable : false
                 };   

        if ($scope.finalOperationsList.indexOf(tmpElement) == -1) {
          $scope.finalOperationsList.push(tmpElement);
          var t = parseInt(_ordre)+1; //_ordre is a string
          _ordre =t;
        }
        console.log("dern  "+_ordre);
  }; 

当我尝试在表格中添加新行时,我总是在控制台中看到以下内容:

_ordre 1undefined
 _ordre 2 1
 _ordre 3 1
 dern  2

问题是,当我尝试在表中添加每次都有递增的 order 的新行时,我在控制台中得到此结果(我陷入了 1 个 order 值)

那么我该如何更正我的代码,以便每次添加新行时都有一个递增的 ordre 值?

感谢您的帮助。

更新: 感谢zerohero先生的回复,但总是同样的问题,这就是我根据您的回复所做的:

$scope.addElement = function (_ordre) {

       console.log("_ordre 1"+_ordre);

       if(_ordre == undefined){
              _ordre = 0;
        }

        _ordre = (parseInt(_ordre) + 1).toString();

        console.log("_ordre 2 "+_ordre);

        _ordre = (parseInt(_ordre) + 1).toString();
        console.log("_ordre 3 "+_ordre);


        var tmpElement = {
                  ordre:(_ordre === undefined) ? (parseInt($scope.finalOperationsList[$scope.finalOperationsList.length-1].ordre) + 1 ): _ordre,
                  temps : '',
                  designation:'',
                  codeOperation : 0,
                  disable : false
                 };   

        if ($scope.finalOperationsList.indexOf(tmpElement) == -1) {
          $scope.finalOperationsList.push(tmpElement);


        }
        console.log("dern  "+_ordre);
  };  

我总是在行“ordre”值等于2 我想念代码中的任何内容吗? 再次感谢您的帮助

最佳答案

这只会触发一次,当 _orde 未定义时将 _orde 设置为 1:

if(_ordre == undefined){
           _ordre = 0;
       if( _ordre == 0){
           _ordre = (parseInt(_ordre) + 1).toString();

       }
}

然后你连续输出:

console.log("_ordre 2 "+_ordre);
console.log("_ordre 3 "+_ordre);

由于没有对 _ordre 进行任何更改,因此在两种情况下都将显示 1。

将 _ordre 设置为 1 以外的任何值的唯一一次是:

var t = parseInt(_ordre)+1; //_ordre is a string
_ordre =t;

这会在您将 tmpElement 的 ordre 设置为 1 后发生。

你的逻辑有很大缺陷。

这样做:

if(_ordre == undefined){
      _ordre = 0;
}

_ordre = (parseInt(_ordre) + 1).toString();

console.log("_ordre 2 "+_ordre);

_ordre = (parseInt(_ordre) + 1).toString();

console.log("_ordre 3 "+_ordre);

关于javascript - 每次在 javascript 中添加新行时如何获得递增的 ordre 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36740664/

相关文章:

javascript - AngularJS - 包装指令

javascript - For 循环内的 Loopback 回调

angularjs - Angular 2 : Is it possible to use the same parent component with different child components?

javascript - 将对象和函数传递给 javascript 类并返回 onSuccess 和 onError

javascript - 如何在 Jest 中模拟未安装的 npm 包?

javascript - Polymer iron-ajax 响应代码

Angularjs:使用索引删除项目

javascript - AngularJS : Access radio button value change in controller

javascript - Pinterest javascript SDK pinOne 弹出对话框的方法

javascript - 如何链接到具有特定过滤器的投资组合页面?