Я использую pretty nice plugin, который обеспечивает теги входные директивы для AngularJS.Угловые метки директивы выпуск
Я использую параметр onTagAdding
, чтобы проверить значение тега, прежде чем он будет добавлен к вводу.
on-tag-adding="{expression}"
Так что, как документация говорит:
Выражение для оценки, которая будет вызываться перед добавлением нового тега. Новый тег доступен как $ tag. Этот метод должен возвращать true или false. Если false, тег не будет добавлен.
Так вот live example.
$scope.checkTag = function(tag) {
angular.forEach($scope.forbiddenTags, function(e){
if (e.text === tag.text) {
alert('Tag is forbidden')
return false;
}
})
alert('Execution is continuing');
}
Я ожидаю, что если введенное значение соответствует одному для этих тегов из $scope.forbiddenTags
массива, то ложных должны быть возвращены и исполнение функции должно быть остановлено, но это работает не так, как я жду =). Я пробовал только с return, но он тоже не работает.
Любая помощь и предложения будут оценены! Заранее спасибо!
Прохладный! Он работает как шарм =) Спасибо за ответ и хорошее объяснение! – user3673623
@ user3673623 Добро пожаловать. :) Примечание. - Вы также можете использовать [Array.find] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find), [Array.findIndex] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex) с поддержкой Shim, но 'array.some' будет более точным для этого. – PSL
@PSL Хорошее объяснение относительно IE> поддержка 9 :) –