C'est une étendue de l'héritage de problème en raison de ng-switch
de la création de son propre champ d'application.
Il y a une recommandation qui apparaît un lot est de toujours utiliser un dot
sur les modèles. La raison en est que lorsque le contrôleur de la portée de l'élément est un objet et non primitive, sous étendues créer une référence à la intiial objet. Si le modèle est une primitive, il ne sera pas de mise à jour de l'original.
Par exemple:
<input ng-model="test.value" placeholder="pre" type="text" />
$scope.test={value:''}
Une autre approche consiste à utiliser des $parent
dans le code html du modèle de balisage:
<input ng-model="$parent.test" placeholder="pre" type="text" />
À l'aide de l' dot
méthodologie est une bonne pratique pour éviter ces problèmes que vous n'avez pas besoin de réfléchir plus profondément imbriquée étendues.
Démonstration à l'aide de test.value
comme modèle: http://plnkr.co/edit/CkiF55bLXsYzR6ZjcrJp?p=preview
Référence concernant l' dot
dans les modèles(valable de lecture): https://github.com/angular/angular.js/wiki/Understanding-Scopes