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

时间:2016-04-20 10:14:50

标签: javascript angularjs

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

$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

问题是,当我尝试在我的表中添加一个新行时,每次增加一个ordre,我在控制台中得到这个结果(我被卡在1的ordre值)

那么我怎样才能更正我的代码,每次添加新行时都有一个递增的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"值equl到2 我想念代码中的任何东西? 再次感谢您的帮助

1 个答案:

答案 0 :(得分:1)

这只会触发一次,当_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);