Utilisation de la TokenInput et en utilisant la validation intégrée du formController d'AngularJS.
Pour l'instant, j'essaie de vérifier si le champ contient du texte et, si c'est le cas, de le rendre valide. Le problème avec l'utilisation du plugin est qu'il crée sa propre entrée et ensuite un ul+li pour la mise en évidence.
J'ai accès à addItem (formname) et à mes capacités dans le contrôleur, j'ai juste besoin de le définir sur $valid.
Markup.
<form class="form-horizontal add-inventory-item" name="addItem">
<input id="capabilities" name="capabilities" token-input data-ng-model="inventoryCapabilitiesAutoComplete" data-on-add="addCapability()" data-on-delete="removeCapability()" required>
<div class="required" data-ng-show="addItem.capabilities.$error.required" title="Please enter capability."></div>
</form>
JS.
$scope.capabilityValidation = function (capability) {
if (capability.name !== "") {
addItem.capabilities.$valid = true;
addItem.capabilities.$error.required = false;
} else {
addItem.capabilities.$valid = false;
addItem.capabilities.$error.required = true;
}
};
J'exécute la fonction capabilityValidation lorsque le TokenInput contient quelque chose et je passe l'objet.
EDITAR:
J'ai découvert que ng-model sur mon entrée fait des choses et obtient les résultats de la saisie automatique, c'est pourquoi je ne peux pas faire fonctionner ng-valid puisqu'il est basé sur le modèle.
$scope.inventoryCapabilitiesAutoComplete = {
options: {
tokenLimit: null
},
source: urlHelper.getAutoComplete('capability')
};
Je n'ai pas écrit cette implémentation de l'autocomplétion, y a-t-il une autre façon de le faire où j'aurais accès à l'attr ng-model et où je déplacerais la fonction modèle ailleurs ?