Я получил строку заголовка за пределами 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()
?
С помощью $ 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
}
Просто создайте div, который обернет вашу панель навигации и слайдбокс, и поместите ng-repeat в этот div :)