Я хотел бы реализовать директиву, которая позволяет мне определить список животных на элементе. Если пользователю нравятся все эти животные, я хочу показать элемент; в противном случае я хочу скрыть это. В идеале я хотел бы, чтобы она выглядела так:Как я могу разобрать директиву атрибута, который имеет несколько значений?
<div animals="cat dog horse"></div>
Как вы можете видеть, животные, разделенных пробелами, аналогично тому, как вы можете определить класс такой элемент с несколькими значениями.
Моя предложенная логика для директивы:
app.directive('animals ', function(userService) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
// how to parse the attribute and get an array of animal strings?
var animalsArray = ... ?
if (userService.likesAllAnimals(animalsArray))
{
// show element
}
else
{
// hide element
}
}
};
});
Но я потерял о том, как:
- Разбираем атрибут
animals
и вывестиanimalsArray
из него. - Показать и скрыть элемент.
Помощь?
Вы можете использовать String.split ("") для анализа атрибута 'animals'. http://stackoverflow.com/questions/10346722/how-can-i-split-a-javascript-string-by-white-space-or-comma Вы искали, как скрывать и показывать/автоматически делать видимыми в AngularJS ? –
Спасибо за ссылку. Я думал об использовании 'split', мне просто интересно, существует ли встроенный метод Angular для анализа атрибута, который имеет значения, разделенные пробелами. –
Могут ли элементы, добавляемые в директиву, не добавляться в контроллер. Зачем использовать директиву? Тогда это просто вопрос шоу и скрыть. – Chandermani