Мне нужно получить случайное число в моем цикле. Я попробовал это в моем шаблоне:Получить случайное число в ng-repeat угловое
<div ng-app="app" ng-controller="Base" >
<div ng-repeat="item in items">
<img ng-src="/img/img{{getRandomImg()}}.png">
</div>
</div>
и функции в моей базе контроллера:
$scope.getRandomImg = function(){
return Math.floor((Math.random()*3)+1);
}
Когда моя страница загружается у меня есть ошибка: $ rootScope: infdig Бесконечные $ дайджеста Loop
Я также попытался сделать это с директивой
app.directive('randomImage', [
function() {
return {
restrict: 'A',
link: function($scope, element, attrs) {
var rand = Math.floor((Math.random()*3)+1);
$(element).attr('src', '/img/tracks/trackimg'+rand+'.png');
}
}
}
]);
И в моем шаблоне:
<div ng-app="app" ng-controller="Base" ng-repeat="item in items">
<img data-random-image="">
</div>
Он работает почти правильно. НО, когда я обновляю items
, в моем контроллере нет повторно созданных изображений, но они остаются неизменными. Зачем?
Почему вы не просто добавить 'imageUrl' как новое свойство к элементам 'items'? А затем сгенерируйте случайное число в контроллере при заполнении этой коллекции - тогда будет намного проще отобразить: '' –
что такое «предметы», откуда идет? –
@OlegYudovich, мы можем предположить, что это переменная, хранящаяся в текущей области внутри контроллера. –