Vervollständige E-Mail-Domäne nach @ -Symbol in AngularJS-Eingabe

8

Ich versuche eine Funktion zu erstellen, die automatisch erkennt, ob ein Benutzer ein @ -Zeichen eingegeben hat und das Feld mit der Unternehmensdomäne automatisch vervollständigt. Es kann mehrere Felder auf der Seite geben, deshalb möchte ich ihre Modelle nicht fest codieren (z. B. $scope.user.email ).
Hier 'was ich bis jetzt bekommen habe:

%Vor%

Und entsprechender Controller-Code:

%Vor%

Autovervollständigung funktioniert einwandfrei, aber das Problem tritt auf, sobald ich versuche, das Formular mit diesem neuen Wert zu senden - es berücksichtigt nicht die mycompany.com -Domäne, die ich automatisch hinzugefügt habe. Und die Anfrage, die gesendet wird, hat user.email = test@ .

Wie kann ich diese automatische Vervollständigung mit AngularJS erreichen?

    
WhiteAngel 14.12.2015, 08:55
quelle

2 Antworten

1

Um es so allgemein wie möglich zu machen, könnten Sie mit einem Richtlinienansatz gehen. Sehen Sie dies Plunker

%Vor%

Dort habe ich eine Direktive namens "complete-email-domain" erstellt. Es nimmt die Domäne und die E-Mail auf und aktualisiert das Modell automatisch, sobald der Benutzer ein '@' eingibt. Dies sollte vollständig wiederverwendbar sein und sollte die tatsächliche Handhabung der Änderung des Wertes auf die neue Direktive umfassen.

Vielleicht wäre eine Verbesserung, die Domäne nur auf dem Benutzerobjekt zu speichern und den Benutzer an die Direktive weiterzugeben. Dann können Sie einfach auf die Eigenschaften "Domäne" und "E-Mail" auf sehr ähnliche Weise zugreifen.

    
sourdoughdetzel 09.05.2016 02:23
quelle
0

Sie können die Variable user als Parameter in der Methode übergeben, damit sie wiederverwendet werden kann:

%Vor%

Und passe auf diesen Parameter auf:

%Vor%

Probieren Sie bottle

aus     
Lucas Rodriguez 14.12.2015 08:57
quelle

Tags und Links