Usando o plug- in TokenInput e usando a validação de formController integrada do AngularJS.
No momento, estou tentando verificar se o campo contém texto e, em seguida, definir o campo para válido se contiver. O problema de usar o plug-in é que ele cria sua própria entrada e, em seguida, um ul + li para configurar.
Tenho acesso a addItem (formname) e meus recursos no controlador, só preciso configurá-lo como $ 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;
}
};
Estou executando a função capacityValidation quando TokenInput tem algo inserido e passando no objeto.
EDITAR:
Descobri que o ng-model em minha entrada faz coisas e obtém os resultados do preenchimento automático, e é por isso que não consigo fazer o ng-valid funcionar, pois ele é baseado no modelo.
$scope.inventoryCapabilitiesAutoComplete = {
options: {
tokenLimit: null
},
source: urlHelper.getAutoComplete('capability')
};
Eu não escrevi esta implementação de preenchimento automático. Existe outra maneira de fazer isso onde eu teria acesso ao atributo ng-model e movesse a função do modelo para outro lugar?
addItem.capabilities.$valid = true
e / ou definir addItem.capabilities. $ Error.required como true ou false, conforme apropriado?
<div ... data-ng-show="capabilities_error" ...>
Em outras palavras, há uma razão para você querer / precisar usar FormController?