1

Ich versuche uib-typeahead zu verwenden, um ein oder mehrere Objekte (über ein ng-repeat) auszuwählen, aber mit einem Problem, das das Modell beim Hinzufügen eines anderen Objekts nicht beibehalten wird.Modell nicht persistent mit uib-typeahead mit ng-repeat

Dies wird reproduziert on Plnkr here (basierend auf ui-bootstrap's demo). (Reproduzieren Sie den Fehler, indem Sie einen Zustand auswählen und dann auf "Anderen auswählen" klicken. Der zuvor ausgewählte Status verschwindet!)

Was verursacht das Modell nicht? Wie kann das behoben werden? Ist es ein Problem mit uib-typeahead? Oder der ng-repeat Umfang?

Hinweis: Ich verwende auch einen benutzerdefinierten ngModel-Formatierer, aber das scheint kein Problem zu verursachen; das Problem bleibt beim Entfernen der format-state Direktive.

Ich habe versucht, ng-model-options, vergebens.

Hilfe geschätzt!

Antwort

2

Ich habe Ihre Plunk und ging dann versucht, es zu reproduzieren und konnte nicht herausfinden, was das Problem der Richtlinie mit ng-repeat ist. Vielleicht fehlt mir etwas, vielleicht ist es ein Problem, du könntest diese Frage an ihrem GitHub Issue Tracker stellen.

Aber ich habe festgestellt, dass durch die Bindung des Modellwerts an eine Modelleigenschaft und nicht an ein Modell selbst alles gut funktioniert.

Statt

ng-model="selected" 

verwenden

ng-model="selected.state" 

und es jetzt works.

+0

Dank @svarog. Haben Sie es geschafft, den Fehler zu reproduzieren? Für mich war das Verhalten bei Chrome 50 und Firefox 44 gleich. Danke für die Lösung - ich werde auch ein Problem auf Github ansprechen. – StevieP

+0

Ich habe keinen Fehler gesehen, nur dass die Daten nicht richtig gebunden haben, habe ich mit FF45/46 getestet – svarog

+0

Ok - danke. Von [dieser Ausgabe] (https://github.com/angular-ui/bootstrap/issues/2922) hat es mit dem isolieren Bereich der ng-Wiederholung zu tun. – StevieP