Как отделить несколько слайдеров изображений на angularjs друг от друга?

Добрый день!

Делаю вывод слайдеров изображений. Когда 1 слайдер все работает как нужно. Когда их несколько, то при клике в превью - меняются большие изображения у всех слайдеров. Нужно прописать уникальные переменные или как то иначе выйти из положения.

<div ng-controller="reviewCtrl">
        <div class="col-sm-6 col-xs-12" ng-repeat='review in reviews'>
            <div ng-controller="reviewImgCtrl">
                <div class="row">
                    {{$index}}
                    <div class="col-xs-12" ng-repeat='reviewImage in reviewImages  | filter:{id_review:review.id} | limitTo:1'>
                        <img ng-init="mainFotoFactory.main = clientURL + reviewImage.foto" src="{{mainFotoFactory.main}}" class="review-main-foto">
                    </div>
                </div>
                <div class="row">
                    <div class="col-xs-3" ng-repeat='reviewImage in reviewImages  | filter:{id_review:review.id} | limitTo:4'>
                        <img ng-click="mainFotoFactory.main = clientURL + reviewImage.foto" src="{{clientURL + reviewImage.foto}}" class="review-more-foto">
                    </div>
                </div>
            </div>
        </div>
    </div>


А нужно, как мне кажется, что-то наподобие:
<div ng-controller="reviewCtrl">
        <div class="col-sm-6 col-xs-12" ng-repeat='review in reviews'>
            <div ng-controller="reviewImgCtrl">
                <div class="row">
                    {{$index}}
                    <div class="col-xs-12" ng-repeat='reviewImage in reviewImages  | filter:{id_review:review.id} | limitTo:1'>
                        <img ng-init="mainFotoFactory.main{{$index}} = clientURL + reviewImage.foto" src="{{mainFotoFactory.main{{$index}}}}" class="review-main-foto">
                    </div>
                </div>
                <div class="row">
                    <div class="col-xs-3" ng-repeat='reviewImage in reviewImages  | filter:{id_review:review.id} | limitTo:4'>
                        <img ng-click="mainFotoFactory.main{{$index}} = clientURL + reviewImage.foto" src="{{clientURL + reviewImage.foto}}" class="review-more-foto">
                    </div>
                </div>
            </div>
        </div>
    </div>


Но тут помимо синтаксических проблем с src="{{mainFotoFactory.main{{$index}}}}"
$index во вложенном ng-repeat уже свой, а мне нужен внешний.

Спасибо
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
streetflush
@streetflush
mainFotoFactory.main{{$index}} я так понял должно быть mainFotoFactory.main[{{$index}}]

А $index легко гуглиться, вот например jsfiddle.net/X5Tdh/2
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Dm-Sok Автор вопроса
<div ng-controller="reviewCtrl">
        <div class="col-sm-6 col-xs-12" ng-repeat='review in reviews'>
            <div ng-controller="reviewImgCtrl">
                <div class="row">
                    <div class="col-xs-12" ng-repeat='reviewImage in reviewImages  | filter:{id_review:review.id} | limitTo:1'>
                        <img src="{{mainFotoFactory.main[$parent.$index]}}" class="review-main-foto">
                    </div>
                </div>
                <div class="row">
                    <div class="col-xs-3" ng-repeat='reviewImage in reviewImages  | filter:{id_review:review.id} | limitTo:4'>
                        <img ng-init="mainFotoFactory.main[$parent.$parent.$index] = clientURL + reviewImage.foto" ng-click="mainFotoFactory.main[$parent.$index] = clientURL + reviewImage.foto" src="{{clientURL + reviewImage.foto}}" class="review-more-foto">
                    </div>
                </div>
            </div>
        </div>
    </div>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы