In un sito Web che sto creando con AngularJS Ho un input con un typeahead qui sotto per il quale utilizzo angular-typeahead. Funziona bene in Chrome, Opera e Safari ma non in Firefox. Il problema sembra essere che in Firefox il modello non si aggiorna quando faccio clic sul suggerimento typeahead.Perché il mio modello ng non si aggiorna con Typeahead in Firefox?
mio html assomiglia a questo:
<input class="typeahead" sf-typeahead type="text" datasets="userDataset" ng-model="searchUser" >
<button ng-click="sendToUser(searchUser.id)" class="btn">Send</button>
e nel mio controller ho questa semplice funzione:
$scope.sendToUser = function(userId){
console.log(userId);
// More code here..
}
In Chrome, Opera e Safari si registra un int per il userId
, ma in Firefox registra solo undefined
.
Ho creato uno plunker for it here per indicare cosa intendo (cercare "uno" o "due").
Funziona in Chrome, Opera e Safari, ma in Firefox in qualche modo mostra undefined
nella console. La cosa più strana è che mostra solo undefined
la prima volta. Se selezioni qualcosa una seconda volta, funziona.
Qualcuno sa perché questo non funziona in Firefox e, cosa più importante, come posso risolverlo? Tutti i suggerimenti sono ben accetti!
Ho provato il tuo Plunker in Chrome e FF. Entrambi sembrano funzionare bene. Ci sono momenti in cui il modello può essere "deselezionato" con un clic all'esterno di TypeAhead in FF.Quindi il modello è vincolato correttamente, ma poi non associato. Nel momento in cui premo il pulsante "Invia" con la selezione effettuata, quell'errore non riappare finché non faccio un'altra selezione. –
@DaveAlperovich - Va bene, quindi sapresti come possiamo mantenere il modello selezionato quando utilizzi Firefox? – kramer65
Non ancora. Comportamento molto strano Il Parser del modello viene sparato, il che significa che, in qualche modo, l'evento click avvia un ciclo di digest (già dispari) e utilizza l'indice corrente per un valore. Entrambi sono molto bizzarri. Non riesco a trovare un evento associato che corrisponde ancora a questo. –