Ich möchte, dass meine Anwendung einen Bereich auf dem Bildschirm hat, in dem die Aktivität verfolgt wird.

Ich habe folgendes erstellt:

$scope.activity = [];

Was ich denke ist, dass ich, wenn etwas beginnt, auf dieses Array wie folgt drängen werde:

$scope.activity.push("Loading content 1");
$scope.activity.push("Loading content 2");
$scope.activity.push("Loading content 3");
$scope.activity.push("Loading content 4");

Ich kann dann einen Bereich auf meinem Bildschirm haben, der zeigt, was mit einer ng-Wiederholung passiert, die alles im Array anzeigt:

<div ng-repeat="row in activity">
    {{ row }}
<div>

Mein Problem ist, dass ich nicht sicher bin, wie ich die Elemente nach Abschluss der Aktivitäten aus dem Array entfernen soll. Kann mir jemand einen Vorschlag machen, wie ich das machen könnte? Was ich wirklich brauche, ist eine Art Pull-Funktion, mit der ich den Namen des Pushs angeben und entfernen lassen kann. Etwas wie:

 $scope.activity.pull("Loading content 4");

Ich brauche auch eine andere Funktion wie:

 $scope.activity.update("Loading content 4", status);

Ich suche nach einer Lösung, die weder jQuery noch Unterstrich verwendet. Myuser sind IE9 und höher.

0
Alan2 1 Dez. 2013 im 12:44

3 Antworten

Beste Antwort

Sie könnten dies tun:

var activityArray = [];
activityArray.push("Loading content 1");
activityArray.push("Loading content 2");
activityArray.push("Loading content 3");
activityArray.push("Loading content 4");

//find the item we want to delete
var index = activityArray.indexOf('Loading content 4');// returns 3
activityArray.splice(index,1)//remove the item at index 3
1
Villarrealized 1 Dez. 2013 im 08:51

Verwenden Sie die Array-Spleißmethode:

Ändert den Inhalt eines Arrays und fügt neue Elemente hinzu, während alte Elemente entfernt werden.

2
CD.. 1 Dez. 2013 im 08:48

.pop() und < a href = "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift" rel = "nofollow"> .shift() werden häufig verwendet zusammen mit .push().

1
sbking 1 Dez. 2013 im 08:51