Получить значение из ng-repeat вне ng-repeat

0

Я получил строку заголовка за пределами ng-repeat:

<ion-header-bar class="headerView" ng-show="!hideAll">
    <button id="shareImage" class="button button-icon icon ion-share" style="color:#fff" ng-click="shareImageTo({{originalImageSource}})"></button>
    <button class="button button-outline button-light close-btn" ng-click="closeModal()">{{::actionLabel}}</button>
  </ion-header-bar>

И слайдер, где отображаются изображения:

<ion-slide ng-repeat="single in slides track by $index">

    <div class="item item-image gallery-slide-view">
        <img ng-src="{{single.original}}">
        <input type="text" ng-model="originalImageSource" value="{{single.original}}">
    </div>
</ion-slide>

{{single.original}} - это URL-адрес изображения. Но этот URL-адрес не помещается в поле ввода. Это показано, когда я удаляю этот оператор ng-model.

Если пользователь нажимает кнопку #shareImage то ShareImageTo(URL) функция ShareImageTo(URL). Но с неопределенным значением для {{originalImageSource}}.

Любые мысли о том, как я {{single.original}} передать URL-адрес в {{single.original}} этой функции ShareImageTo()?

Теги:
ionic-framework
ionic

2 ответа

1
Лучший ответ

С помощью $ ionicSlideBoxDelegate вы можете получить текущий индекс слайда через currentIndex(). Это позволяет вам получить URL-адрес по $scope.slides[$ionicSlideBoxDelegate.currentIndex()].original в вашем ShareImageTo() -method:

$scope.ShareImageTo = function() {
    var URL = $scope.slides[$ionicSlideBoxDelegate.currentIndex()].original;
    //your logic
};

Другим подходом было бы использовать директиву on-slide-changed ion-slide-box слайдером on-slide-changed.

Шаблон:

<ion-slide-box on-slide-changed="slideHasChanged($index)">
    ...
</ion-slide-box>

контроллер:

$scope.slideHasChanged = function(index) {
    $scope.originalImageSource = $scope.slides[index].original;
    //.. some more logic
}
  • 0
    Спасибо чувак! Идеальный ответ.
  • 0
    Я рад, что смог помочь тебе.
-2

Просто создайте div, который обернет вашу панель навигации и слайдбокс, и поместите ng-repeat в этот div :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню