Vinculando um select a uma matriz de objetos no Aurelia e correspondendo no ID
Então, eu tenho uma lista de todos os usuários, que preenche as opções de um select.
<option repeat.for="user of userService.users">
${user.firstName} ${user.lastName}
</option>
E eu tenho um registro de grupo recebido que tem uma lista de usuários anexados a ele. Eu sigo otrapacear instruções e vincule-o a um único índice do modelo.
<select value.bind="group.users[0]">
<option repeat.for="user of userService.users" model.bind="user">
${user.firstName} ${user.lastName}
</option>
</select>
Portanto, o usuário recebido no grupo é idêntico a um dos usuários da lista:
{
id: 123,
firstName: 'Matt',
lastName: 'Davis'
}
Mas quando o grupo é carregado e vinculado à visualização, o usuário correto não é escolhido na seleção. Na verdade, eu esperaria isso, pois o JavaScript procuraria igualdade referencial.
Idealmente, eu gostaria que Aurelia descobrisse que o registro recebido é o acima e (a) pesquise na lista de opções testando a igualdade (b) que eu defini em alguma extensão (talvez um filtro?), (C) selecione na lista e (d) propague essa seleção de volta para o registro, para que o registro esteja agora referencialmente em sincronia.
Prefiro não voltar a um gatilho que faz isso manualmente, porque terei muitos e muitos desses tipos de seleções em todo o meu aplicativo.
Eu me contentaria, embora infelizmente, com (a) e (c).