我有这个代码来增加 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/