oto mój problem. Próbuję usunąć obiekt z tablicy, ale funkcja łączenia wydaje się sprowokować awarię.
$http({
method : "POST",
url : "getDatesBasket",
data: {"mission":pos_id},
async:false
}).then(function successCallback(response) {
var rep = response["data"];
var repSplit = rep.split(",");
var posSplit = repSplit[0];
var posTemp = posSplit.split(":")[1];
for (kPos = 0; kPos < $scope.datePos.length; kPos++) {
alert("BEFORE " +$scope.datePos[kPos].dateMax);
if(posTemp==$scope.datePos[kPos].pos){
alert("start suppression");
datePos.splice(kpos,1);
alert("end suppression");
}
alert("AFTER " +$scope.datePos[kPos].dateMax);
}
po uruchomieniu widzę pola ostrzeżeń BEFORE
i start suppression
ale nie end suppression
, to tak, jakby funkcja łączenia spowodowała awarię kodu.
EDYTOWAĆ
Oto datePos, jest to tablica z tak zbudowanym obiektem Wykonuję żądanie ajax, aby uzyskać jakieś dane, a następnie wpycham te dane do karty. Jest to więc obiekt z dwoma kluczami, pozycją i danymi
$http({
method: "POST",
url: "getDatesBasket",
data: {
"mission": pos_id
},
async: false
}).then(function successCallback(response) {
var rep = response["data"];
var repSplit = rep.split(",");
var posSplit = repSplit[0];
var dateSplit = repSplit[1];
var posTemp = posSplit.split(":")[1];
var date = dateSplit.split(":")[1];
var myPos = {
pos: posTemp,
dateMax: date
};
$scope.datePos.push(myPos);
Odpowiedzi:
2 dla odpowiedzi № 1Musisz podzielić tę samą tablicę, która jest zdefiniowana w twoim zasięgu, a także używasz małych liter w splocie. kPos
. Więc musisz splecić w ten sposób.
$scope.datePos.splice(kPos,1);
0 dla odpowiedzi nr 2
Właściwie zapominasz używać $ scope. Oto zaktualizowany kod ..
for (kPos = 0; kPos < $scope.datePos.length; kPos++) {
alert("BEFORE " +$scope.datePos[kPos].dateMax);
if(posTemp==$scope.datePos[kPos].pos){
alert("start suppression");
$scope.datePos.splice(kpos,1);
alert("end suppression");
}
alert("AFTER " +$scope.datePos[kPos].dateMax);
}
0 dla odpowiedzi № 3
for (kPos = $scope.datePos.length-1; kPos>=0; kPos--) {
alert("BEFORE " +$scope.datePos[kPos].dateMax);
if(posTemp==$scope.datePos[kPos].pos){
alert("start suppression");
$scope.datePos.splice(kpos,1);
alert("end suppression");
}
alert("AFTER " +$scope.datePos[kPos].dateMax);
}
spróbuj jak wyżej.