In einer Website, die ich mit AngularJS baue, habe ich eine Eingabe mit einem Typeahead, für den ich angular-typeahead verwende. Es funktioniert gut in Chrome, Opera und Safari, aber nicht in Firefox. Das Problem scheint zu sein, dass das Modell in Firefox nicht aktualisiert wird, wenn ich auf den Tippvorschlag tippe.Warum wird mein ng-Modell nicht mit Typeahead in Firefox aktualisiert?
sieht mein html wie folgt aus:
<input class="typeahead" sf-typeahead type="text" datasets="userDataset" ng-model="searchUser" >
<button ng-click="sendToUser(searchUser.id)" class="btn">Send</button>
und in meinem Controller Ich habe diese einfache Funktion:
$scope.sendToUser = function(userId){
console.log(userId);
// More code here..
}
In Chrome, Opera und Safari es einen int für die userId
anmeldet, aber in Firefox loggt nur undefined
.
Ich machte eine plunker for it here um zu zeigen, was ich meine (Suche nach "eins" oder "zwei").
Es funktioniert in Chrome, Opera und Safari, aber in Firefox zeigt es irgendwie undefined
in der Konsole. Das Besondere ist, dass es beim ersten Mal nur undefined
anzeigt. Wenn Sie etwas ein zweites Mal auswählen, funktioniert es.
Weiß jemand, warum das in Firefox nicht funktioniert, und vor allem, wie ich es lösen kann? Alle Tipps sind willkommen!
Ich habe versucht, Ihre Plunker in Chrome und FF. Beide scheinen gut zu funktionieren. Es gibt Zeiten, wenn das Modell mit einem Klick außerhalb des TypeAhead in FF "nicht ausgewählt" werden kann.Das Modell ist also korrekt gebunden, aber dann nicht gebunden. In dem Moment, in dem ich die "Senden" -Schaltfläche mit der getroffenen Auswahl drücke, erscheint dieser Fehler erst wieder, wenn ich eine andere Auswahl getroffen habe. –
@DaveAlperovich - Alles klar, wüsstest du, wie wir das Modell bei der Verwendung von Firefox beibehalten können? – kramer65
Noch nicht. Sehr merkwürdiges Verhalten. Der Model Parser wird ausgelöst, was bedeutet, dass das Click-Ereignis irgendwie einen Digest-Zyklus startet (bereits ungerade) und den aktuellen Index für einen Wert verwendet. Beide sind sehr bizarr. Ich kann kein gebundenes Ereignis finden, das dem noch entspricht. –