AngularJS select crée une option avec la valeur "? object: null? "et n'utilise pas l'option par défaut vide lorsqu'il est lié à null
Voici à quoi ressemble le code
<select ng-model="nullableInt">
<option></option>
<option value="0">First option</option>
<option value="1">First option</option>
<option value="2">First option</option>
</select>
Quand nullableInt est null le code html généré est
<select ng-model="nullableInt">
<option></option>
<option value="? object:null ?"></option>
<option value="0">First option</option>
<option value="1">First option</option>
<option value="2">First option</option>
</select>
Reproduit dans le plunkr ici: http://plnkr.co/edit/05pBEMJppmkrn3nFgYdk?p=info
Il vaut la peine de mentionner que je suis en train d'essayer d'éviter d'utiliser ng-options
il semble un peu exagéré pour créer un point de terminaison pour AngularJS pour consommer certaines données qui vraiment ne changera pas souvent, voire jamais.
source d'informationauteur MushinNoShin
Vous devez vous connecter pour publier un commentaire.
Mise à jour 3/29/2017:
Jorge Rodrigues dos Santos a déclaré, cela devrait être géré de façon différente pour les versions plus récentes de anguleux. Ci-dessous est extrait de la documentation en cours angulaire 1.6.3
https://docs.angularjs.org/api/ng/directive/select
Angulaire est la création d'une nouvelle option pour représenter la valeur null. Il n'a pas trouve l'une des options fournies dans le HTML.
De lier null, définissez la valeur="null" sur la première option
http://plnkr.co/edit/kzPVu4hiMcP6wA6crGYt?p=preview
Accepté la réponse n'a pas fonctionné pour moi, parce que ma propriété pourrait être vides, null ou undefined. Si vous utilisez la version 1.3+, alors vous pouvez utiliser un getterSetter de forcer la valeur à vide.
J'avais en face de la chaîne de valeurs. Vous devrez gérer 0 ou d'autres falsy valeurs de la fonction en tant que bien.
https://code.angularjs.org/1.3.20/docs/api/ng/directive/ngModel
Pour des versions plus récentes de Angularjs utilisation
<option value=""> - </option>
pour la valeur nullCi-dessous la solution a résolu le problème pour moi.
Le problème ici, c'est quand ng-model est utilisé, il ajoute une option par défaut avec la valeur "?" et sans l'aide de ng-model, on ne peut pas utiliser ng-changer pour obtenir la sélection en cours. J'ai créé une onChangeSelection() dans lequel on peut définir la defaultSelected propriété de la comme ci-dessous
Cela permettrait d'exclure de l'option par défaut de la liste d'options et aussi la première valeur comme defaultSelected.