Verwenden des TokenInput- Plugins und der in AngularJS integrierten formController-Validierung.
Im Moment versuche ich zu überprüfen, ob das Feld Text enthält, und setze das Feld dann auf gültig, wenn dies der Fall ist. Das Problem bei der Verwendung des Plugins ist, dass es eine eigene Eingabe und dann eine ul + li zum Festhalten erstellt.
Ich habe Zugriff auf addItem (Formularname) und meine Funktionen im Controller. Ich muss es nur auf $ valid setzen.
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;
}
};
Ich führe die CapabilityValidation-Funktion aus, wenn TokenInput etwas eingegeben und in das Objekt übergeben hat.
BEARBEITEN:
Ich habe herausgefunden, dass ng-model in meiner Eingabe Dinge tut und die Ergebnisse der automatischen Vervollständigung erhält, weshalb ich ng-valid nicht zum Arbeiten bringen kann, da es auf dem Modell basiert.
$scope.inventoryCapabilitiesAutoComplete = {
options: {
tokenLimit: null
},
source: urlHelper.getAutoComplete('capability')
};
Ich habe diese Autocomplete-Implementierung nicht geschrieben. Gibt es eine andere Möglichkeit, dies zu tun, wenn ich Zugriff auf das ng-model attr hätte und die Modellfunktion an einen anderen Ort verschieben würde?
addItem.capabilities.$valid = true
, addItem.capabilities. $ Error.required auf true oder false zu setzen?
<div ... data-ng-show="capabilities_error" ...>
Mit anderen Worten, gibt es einen Grund, warum Sie FormController verwenden möchten / müssen?