【问题标题】:Bootstrap 4 carousel not working with AngularJS UI-BootstrapBootstrap 4轮播不适用于AngularJS UI-Bootstrap
【发布时间】:2019-02-24 08:00:24
【问题描述】:

我正在尝试在我的 bootstrap 4 网站中使用基于角度的轮播。当我使用 bootstrap 3(bootstrap.min.css) 时,它运行良好。当我尝试更改引导程序 4(bootstrap.min.js)时,它不起作用。我不知道如何修改 bootstrap 4 角度版本的轮播滑块。我试过下面的代码。任何人都可以帮助我实现这一目标。

jsfiddle link

angular.module('app', ['ui.bootstrap']);

function CarouselDemoCtrl($scope) {
  $scope.myInterval = 3000;
  $scope.slides = [{
      image: 'https://eadb.org/wp-content/uploads/2013/09/placeholder.jpg'
    },

    {
      image: 'https://eadb.org/wp-content/uploads/2013/09/placeholder.jpg'
    },

    {
      image: 'https://eadb.org/wp-content/uploads/2013/09/placeholder.jpg'
    },

    {
      image: 'https://eadb.org/wp-content/uploads/2013/09/placeholder.jpg'
    }
  ];


}
//# sourceURL=pen.js
#slides_control>div {
  height: 200px;
}

img {
  margin: auto;
  width: 400px;
}

#slides_control {
  position: absolute;
  width: 400px;
  left: 50%;
  top: 20px;
  margin-left: -200px;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <!-- ========== Meta Tags ========== -->
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Association - Corporate Business Template">
  <title>Template</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
  <!--<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet"> -->


</head>

<body>

  <div ng-app="app">
    <div ng-controller="CarouselDemoCtrl" id="slides_control">
      <div>
        <carousel interval="myInterval">
          <slide ng-repeat="slide in slides" active="slide.active">
            <img ng-src="{{slide.image}}">
            <div class="carousel-caption">
              <h4>Slide {{$index+1}}</h4>
            </div>
          </slide>
        </carousel>
      </div>
    </div>
  </div>


  <!-- boostrap 4 -->
  <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
  <!-- boostrap 4 -->

  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
  <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.10.0/ui-bootstrap-tpls.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

</body>

</html>

【问题讨论】:

  • 您的示例包含 jQuery 两次 - 如果您的“真实”代码执行相同的操作,这将导致问题。
  • @TiesonT。删除 jquery 后也是同样的问题
  • 幻灯片类在 BS4 (carousel-item) 中有所不同(请参阅 getbootstrap.com/docs/4.1/components/carousel),因此 Angular 脚本为 Bootstrap 4 输出了错误的标记。我假设您必须切换到某些东西喜欢ng-bootstrap.github.io/#/home
  • UI-Bootstrap 不支持 Bootstrap 4。而是使用UI Bootstrap 4。由 AngularUI 团队用纯 AngularJS 编写的引导组件。由Morgul 移植到 Bootstrap 4。
  • @georgeawg 好的。已注明。

标签: css angularjs twitter-bootstrap bootstrap-4 angular-ui-bootstrap


【解决方案1】:

最好的方法是ui bootstrap 4中的轮播指令

UI 引导程序 4

AngularUI 团队用纯 AngularJS 编写的引导组件

Morgul 移植到 Bootstrap 4

<div uib-carousel active="active" interval="myInterval" no-wrap="noWrapSlides">
  <div uib-slide ng-repeat="slide in slides track by slide.id" index="slide.id">
    <img ng-src="{{slide.image}}" style="margin:auto;">
    <div class="carousel-caption">
      <h4>Slide {{slide.id}}</h4>
      <p>{{slide.text}}</p>
    </div>
  </div>
</div>

【讨论】:

    【解决方案2】:

    carousel 依赖于 angular-ui-bootstrap,而 angular-ui-bootstrap 又依赖于 bootstrap3

    您使用的是 bootstrap4,因此 angular-ui-bootstrap 输出错误的 html

    改变:

    <div uib-slide ng-repeat="slide in slides track by slide.id" index="slide.id">
    

    到:

    <div uib-slide class="carousel-item" ng-repeat="slide in slides track by slide.id" index="slide.id">
    

    然后删除 bootstrap3

    【讨论】:

      【解决方案3】:

      正如 Tieson 在评论中已经提到的,这主要是因为您的代码中有多个 jQuery 引用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-19
        • 2018-07-27
        • 1970-01-01
        • 2019-10-02
        • 1970-01-01
        • 1970-01-01
        • 2014-08-03
        相关资源
        最近更新 更多