So habe ich eine Liste aller Benutzer, die die Optionen einer Auswahl füllt.Binden einer Auswahl an ein Array von Objekten in Aurelia und Abgleich auf ID
<option repeat.for="user of userService.users">
${user.firstName} ${user.lastName}
</option>
Und ich habe einen eingehenden Gruppen-Datensatz, der eine Liste von Benutzern hat, die daran angeschlossen sind. Ich folge den Anweisungen cheat sheat und binde es an einen einzelnen Index des Modells.
<select value.bind="group.users[0]">
<option repeat.for="user of userService.users" model.bind="user">
${user.firstName} ${user.lastName}
</option>
</select>
die eingehenden Benutzer in der Gruppe sind also identisch mit einem der Benutzer in der Liste:
{
id: 123,
firstName: 'Matt',
lastName: 'Davis'
}
Aber wenn die Gruppe geladen wird und zu der Ansicht gebunden ist, der richtige Benutzer ist nicht ausgewählt aus der Auswahl. Eigentlich würde ich dies erwarten, da JavaScript nach Referenzgleichheit suchen würde.
Im Idealfall möchte ich, dass Aurelia den eingehenden Datensatz wie oben findet und (a) die Liste der Optionen durchsucht, die Gleichheit testen (b), die ich in einer Erweiterung definiert habe (vielleicht ein Filter?), (c) wähle es in der Liste aus und (d) bringe diese Auswahl zurück in den Datensatz, so dass der Datensatz nun referenziert ist.
Ich würde lieber nicht auf einen Auslöser zurückfallen, der das manuell tut, weil ich viele und viele dieser Arten von Auswahlen in meiner Anwendung haben werde.
Ich würde, wenn auch traurig, für (a) und (c) abrechnen.
https://github.com/aurelia/binding/issues/94 –