У меня есть этот код, чтобы увеличить значение 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 Sir за ваш ответ, но всегда та же проблема, это то, что я сделал в соответствии с вашим ответом:
$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 miss я ничего в коде??? еще раз спасибо за помощь
Это будет срабатывать только один раз, установив _orde на 1, когда _orde не определено:
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);