#javascript #angularjs
#javascript #angularjs
Вопрос:
Я искал и могу найти только вещи, связанные со случайным элементом, но то, что я хочу сделать, это получить (например) 7 случайных элементов из большей группы элементов.
Итак, прямо сейчас у меня есть код, который дает мне первые 7 элементов в моих данных, но вместо этого я хочу извлечь 6 случайных элементов.
<ul class="block-grid-4">
<li ng-repeat="icon in icons | limitTo:7"><i class="fa fa-fw fa-{{icon.id}}"></i> fa-{{icon.id}}</li>
</ul>
Как я могу просто получить 7 (или любое произвольное число) элементов?
Мой сервис
.factory('FaIconFactory', ['$http',
function($http) {
return {
getIcons: function() {
var icons = $http.get('scripts/data/fa_icons.js').then(function(response) {
return response.data.icons;
});
return icons;
}
};
}
]);
Комментарии:
1. Когда вы вызываете метод service и сохраняете значки в переменной scope, перетасуйте массив. Или создайте фильтр, который делает это, чтобы вы не возились с необработанными данными (и добавьте
limitTo:7
после этого фильтра). Если вы хотите рандомизировать количество отображаемых элементов, сгенерируйте случайное число при получении значков и установите его в области видимости. Используйте эту переменную области вместо7
2. Это имеет смысл. Спасибо.
3. Вот пример того, что я имел в виду: jsfiddle.net/4RAXk — к сожалению, я не смог заставить a
filter
работать, потому что это вызывало слишком много дайджестов в Angular