AngularJS [$ rootScope: infdig] ошибка с функцией случайного числа - PullRequest
0 голосов
/ 14 ноября 2018

Я получаю ошибку [$ rootScope: infdig], но мой код на самом деле работает. Я пытаюсь загрузить изображение или изображение произвольного заполнителя, если оно не существует.

<div ng-repeat="v in tiles track by $index" id="text-{{v.ID}}" class="lity-hide row-fluid lityBox">
            <div class="span3">
                <img ng-src="{{v.Image !== undefined ? v.Image.split(',')[0] : getPlaceholderImg() }}">
                <h4 class="centerMe">{{v.Title}}</h4>
            </div>              
        </div>

Вот функция в $ scope:

$scope.getPlaceholderImg = function() { 
        $scope.placeholderImg = "http://myurl.com/defaultImg" + Math.floor((Math.random()*5)+1) + ".jpg";
        return $scope.placeholderImg;
    }

1 Ответ

0 голосов
/ 14 ноября 2018

Одним из решений является использование одноразового оператора привязки (::) для стабилизации выражения:

<div ng-repeat="v in tiles track by $index" id="text-{{v.ID}}" class="lity-hide row-fluid lityBox">
    <div class="span3">
        ̶<̶i̶m̶g̶ ̶n̶g̶-̶s̶r̶c̶=̶"̶{̶{̶v̶.̶I̶m̶a̶g̶e̶ ̶!̶=̶=̶ ̶u̶n̶d̶e̶f̶i̶n̶e̶d̶ ̶?̶ ̶v̶.̶I̶m̶a̶g̶e̶.̶s̶p̶l̶i̶t̶(̶'̶,̶'̶)̶[̶0̶]̶ ̶:̶ ̶g̶e̶t̶P̶l̶a̶c̶e̶h̶o̶l̶d̶e̶r̶I̶m̶g̶(̶)̶ ̶}̶}̶"̶>̶
        <img ng-src="{{::v.Image !== undefined ? v.Image.split(',')[0] : getPlaceholderImg() }}">
        <h4 class="centerMe">{{v.Title}}</h4>
    </div>              
</div>

Для получения дополнительной информации см.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...