Pesquisa de site

javascript - ERRO TypeError: Não é possível ler a propriedade 'clientId' de null


Depois de clicar no meu objeto, eu mudo o componente para outro para atualizar este objeto. Neste componente para atualização, eu tenho um formulário que contém um elemento select com opções que devem ser inicializadas com valores do banco de dados (no método OnInit)

e eu preciso selecionar por padrão a partir desta lista de valores o valor do meu objeto

 <label>Catégorie Client:</label>
 <select class="form-control" [(ngModel)]="client.clientId" >
     <option></option>
     <option *ngFor="let client of clients" [value]="client.clientId">{{client.name}}</option>
 </select>

O problema é que o cliente pode ser nulo e eu quero, nesse caso, mostrar <option></option> como valor padrão com valor vazio, mas eu recebo um erro

não é possível ler valor nulo

Eu tenho meu objeto instanciado ...

Obrigado por ajudar.

Resposta #1

[(ngModel)]="client.clientId" gera o erro. client não está disponível aqui, você o declarou em suas tags option

Esteja ciente de que [value]="xxx" suporta apenas string, se o seu clientId for número, é melhor escolher [ngValue]="xxx"

 <label>Catégorie Client:</label>
 <select 
   class="form-control" 
   [(ngModel)]="selectedClient" >
   <option></option>
   <option 
     *ngFor="let client of clients" 
     [ngValue]="client"
   >
   {{client.name}}
   </option>
 </select>

selectedClient precisa ser inicializado com um item de clients,

como mencionou ConnorsFan, você pode deixar selectedClient como null, assim nada seria selecionado no início.