Використовуючи плагін TokenInput та використовуючи вбудовану перевірку форми AngularJS formController.
Зараз я намагаюся перевірити, чи містить поле поле, а потім встановити його як дійсне, якщо воно містить. Проблема використання плагіна полягає в тому, що він створює власний вхід, а потім ul + li для зберігання.
У мене є доступ до addItem (ім'я форми) та мої можливості в контролері, мені просто потрібно встановити для нього значення $ valid.
Розмітка.
<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;
}
};
Я запускаю функцію capabilityValidation, коли TokenInput щось вводить і передає в об'єкт.
РЕДАГУВАТИ:
З'ясувавши, що ng-model на моєму вводі робить щось і отримує результати автозавершення, саме тому я не можу отримати ng-valid для роботи, оскільки вона базується на моделі.
$scope.inventoryCapabilitiesAutoComplete = {
options: {
tokenLimit: null
},
source: urlHelper.getAutoComplete('capability')
};
Я не писав цю реалізацію автозаповнення, чи є інший спосіб зробити це, де я мав би доступ до ng-model attr і переміщував функцію моделі кудись ще?
<div ... data-ng-show="capabilities_error" ...>Іншими словами, чи є причина, за якою ви хочете / потрібно використовувати FormController?