Ich schreibe gerade eine kleine Funktion, um einen $ scope-Wert aus einem Eingabefeld zu nehmen, und dann zu einem neuen Array mit eingeladenen Benutzern hinzufügen.
Um doppelte Einträge in das Array zu verhindern, versuche ich die JavaScript-Filtermethode zu verwenden.
Mein Problem ist, wenn ich sehe, was auf der Konsole ausgegeben wird, die console.log innerhalb der Filterfunktion druckt immer den gleichen E-Mail-Wert, es scheint nicht zu aktualisieren und die neue Eingabe zu berücksichtigen. z.B. ein Benutzer hat 2 Benutzer hinzugefügt, der erste wird hinzugefügt und der InvitesArr enthält nur die erste E-Mail.
var invitesArr = $scope.invites;
console.log(invitesArr)
console.log($scope.searchContacts)
if ($scope.invites.length >= 0) {
invitesArr.filter(function(invitesArr) {
console.log(invitesArr.Email)
return invitesArr.Email === $scope.searchContacts;
});
if (invitesArr == false) {
courseAccountService.inviteGuestToCourse($scope.courseId,$scope.searchContacts).
then(function(invitation) {
$scope.invites.push(invitation);
});
}
}
Jeder spezifische Grund für die Verwendung der gleichen Variablen ** InvitationArr ** für Array, innerhalb der Filterfunktion und boolesche Bedingung –
Nicht wirklich, ich muss nur überprüfen, ob der Email-Wert einen Wert aus dem ursprünglichen Array hat. ZB wenn $ scope.invites x enthält, dann muss ich prüfen, ob der neue $ scope.searchContacts mit x übereinstimmt – theHussle