Angularjs validation de l'interface utilisateur de sélectionner plusieurs
LA SITUATION:
J'ai angulaire application qui envoient des e-mails.
Il y a un formulaire avec trois champs:
Adresse - Objet - Texte.
Pour le champ d'adresse, je suis en utilisant angulaire interface utilisateur-sélectionnez.
Tout fonctionne bien, sauf la validation sur le champ d'adresse (sur le sujet et le texte de validation fonctionne correctement).
EDIT:
Ce bogue a été corrigé à partir de la version 0.16.1. comme l'a souligné @yishaiz.
Donc cette question et de sa relative solution à l'égard de l'interface utilisateur, sélectionnez les versions < 0.16.1.
LE CODE:
HTML:
<form name="emailForm" ng-submit="submitForm(emailForm.$valid)">
<div class="row form-group">
<label class="col-sm-2 control-label">To: </label>
<div class="col-sm-10">
<ui-select multiple ng-model="database_people.selectedPeople" theme="select2" ng-disabled="disabled" style="width:100%">
<ui-select-match placeholder="Select person...">{{$item.name}} < {{$item.value}} ></ui-select-match>
<ui-select-choices repeat="person2 in list_people | filter: {name: $select.search.name, value: $select.search.value, db_data_type_id: 5}">
<div ng-bind-html="person2.name | highlight: $select.search"></div>
<small>
email: <span ng-bind-html="''+person2.value | highlight: $select.search"></span>
</small>
</ui-select-choices>
</ui-select>
</div>
</div>
<div class="col-sm-8">
<button type="submit" class="btn btn-primary">Send</button>
</div>
</form>
ANGULARJS:
$scope.submitForm = function(isValid)
{
if (isValid) {
alert('valid');
}
else {
alert('not valid')
}
};
PLUNKER:
http://plnkr.co/edit/MYW7SM9c9anH6RTomfRG?p=preview
Comme vous pouvez le voir, l'interface utilisateur-sélectionnez est nécessaire, mais la forme est à analyser comme valide.
QUESTION(s):
Comment puis-je faire l'interface utilisateur de sélectionner plusieurs requise?
Vous devez vous connecter pour publier un commentaire.
C'est un travail Plunker.
La ligne que j'ai changé, c'est ceci:
Il n'utilise pas la forme $valide ce qui est ce que je suppose que vous l'idéal serait de le faire.
J'ai essayé d'utiliser la méthode recommandée comme indiqué ici https://docs.angularjs.org/api/ng/directive/form
...
mais ça ne fonctionne pas.
Je me demande si le problème est le fait que multipleDemo.selectedPeople est toujours valide même si c'est un tableau vide.
Edit: Pour valider plus d'un domaine que vous pourriez faire ce
Dans le contrôleur
Plunker
Depuis angulaire#1.3, l'angulaire de la façon de le faire est de créer un personnalisé (validation) de la directive.
Directive:
Code devient:
Adapté de cette solution
PS: vous pouvez également utiliser ng-messages pour afficher correctement une erreur si la validation échoue. Exemple:
Essayez ceci:
Si la longueur de la ng-model c'est à dire du "stockage" est " 0 " puis afficher le message d'erreur et vous pouvez également afficher de message d'erreur en utilisant le formulaire form_name.$soumis. C'est simple moyen de gérer les champs requis pour la sélection multiple.
Ils ont corrigé le bug dans l'interface utilisateur-sélectionnez la version 0.16.1.
Voir ce travail plunker.
La seule chose que j'ai changé, c'est l'interface utilisateur-sélectionnez la version ici
Et c'est le github fermés question bug.