Usando el complemento TokenInput y usando la validación de formController incorporada de AngularJS.
En este momento estoy tratando de verificar si el campo contiene texto y luego establecer el campo como válido si lo tiene. El problema con el uso del complemento es que crea su propia entrada y luego un ul + li para stlying.
Tengo acceso a addItem (formname) y mis capacidades en el controlador, solo necesito configurarlo en $ valid.
Margen.
<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;
}
};
Estoy ejecutando la función CapacityValidation cuando TokenInput tiene algo ingresado y pasando el objeto.
EDITAR:
Descubrí que ng-model en mi entrada hace cosas y obtiene los resultados de autocompletar, por lo que no puedo hacer que ng-valid funcione ya que se basa en el modelo.
$scope.inventoryCapabilitiesAutoComplete = {
options: {
tokenLimit: null
},
source: urlHelper.getAutoComplete('capability')
};
No escribí esta implementación de autocompletar, ¿hay otra forma de hacer esto en la que tenga acceso al attr ng-model y mueva la función del modelo a otro lugar?
<div ... data-ng-show="capabilities_error" ...>
En otras palabras, ¿hay alguna razón por la que desee / necesite usar FormController?