Как решить «отображение всех изображений слайдера» в Angularjs Но в HTML слайдер работает правильно - PullRequest
0 голосов
/ 01 февраля 2019

Когда я использую HTML, тогда слайдер изображений работает правильно, но когда я использую AngularJS, тогда мой слайдер изображений отображает все изображения.После отображения всех изображений, когда я нажимаю кнопку «Далее», мой слайдер работает правильно.Я проверял длину слайдера, затем он показывает мне один слайдер, но у меня есть 4 изображения, и когда я нажимаю следующую кнопку, он показывает 4 длины слайдера.Пожалуйста, помогите мне!!!заранее спасибо

HTML-код

<div class="container" ng-init="image()">
  <div class="row">
    <div class="col-md-12" ng-repeat="img in images">
      <div class="mySlides">
        <div class="numbertext">{{img.id}}</div>
        <img class="size-i" ng-src="{{img.oe_images}}" style="width:100%;">
      </div>
    </div>
    <div class="row">
      <div class="col-md-12">
        <a class="prev" style="font-size:36px;" onclick="plusSlides(-1)">❮</a>
        <a class="next" style="font-size:36px;" onclick="plusSlides(1)">❯</a>
        <div class="row paddi">
          <div class="column" ng-repeat="img in images">
            <img class="demo cursor border-demo" ng-src="{{img.oe_images}}" style="width:100%;" data="{{img.id}}" ng-click="currentSlide(img.id)" alt="{{img.oe_images}}">
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
//Javascript code for image slider
<script>
  var slideIndex = 1;
  showSlides(slideIndex);

  function plusSlides(n) {
    showSlides(slideIndex += n);

  }

  function currentSlide(n) {
    showSlides(slideIndex = n);
  }

  function showSlides(n) {
    console.log(n);
    var i;

    var slides = document.getElementsByClassName("mySlides");
    var dots = document.getElementsByClassName("demo");

    if (n > slides.length) {
      slideIndex = 1
    }
    if (n < 1) {
      slideIndex = slides.length
    }
    console.log(slides.length);
    for (i = 0; i < slides.length; i++) {
      slides[i].style.display = "none";
    }
    for (i = 0; i < dots.length; i++) {
      dots[i].className = dots[i].className.replace(" active", "");
    }
    slides[slideIndex - 1].style.display = "block";
    dots[slideIndex - 1].className += " active";
  }
</script>
//Controller.js file 'use strict'; var app = angular.module('myApp', []); app.controller('indexCtrl', function($scope,$http) { $scope.image = function(){ $http.get(baseURL+'pptAllImages').then(successCallback, errorCallback); function successCallback(response){
$scope.images=response.data; console.log($scope.images); } function errorCallback(error){ console.log(error); } }; });

[На рисунке показаны все изображения, отображаемые после нажатия следующей кнопки, все работает правильно] [1] [1]: https://i.stack.imgur.com/6zz7k.png

В HTML-коде все хорошо, но эта проблема возникает, когда я использую AngularJS.Я использую автоматический слайдер, тогда он работает правильно в AngularJS, но я хочу щелкнуть слайдер.Я также использовал другой ползунок onclick, но в каждом ползунке onclick возникает та же проблемаВсе данные, которые я получаю из базы данных, но проблема возникает только в AngularJS.Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 01 февраля 2019

Вам необходимо переместить функции javascript в контроллер и связать их с областью действия.

$scope.showSlides(){}

Также убедитесь, что вы загружаете приложение с помощью

ng-app="myApp"

Пример работыугловой слайдер изображений ... http://jsfiddle.net/HoffZ/t8BaZ/

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