如何修复Bootstrap Carousel' offSetWidth'错误

时间:2015-10-04 07:14:46

标签: angularjs twitter-bootstrap angularjs-ng-repeat carousel offsetwidth

我使用bootstrap carousel来浏览我从外部API引入的数据。 API数组中的第一个元素显示在轮播上,但是当我按下“下一个”时,或者' prev'箭头按钮,屏幕闪烁,我收到此错误:Uncaught TypeError: Cannot read property 'offsetWidth' of undefined

此错误意味着什么,我该如何解决?起初我认为这意味着它无法读取那些尚未存在的数据,因为API数据需要很长时间才能获取,但这不可能,因为第一张幻灯片显示正常。

如果有帮助,这是我的HTML:

<div id="myCarousel" class="carousel slide" data-ride="carousel">
  <!-- Indicators -->
  <ol class="carousel-indicators">
    <li ng-repeat="item in slides" data-target="#myCarousel" data-slide-to="item" ng-class="{active : $first}"></li>
  </ol>
  <div class="carousel-inner" role="listbox">
    <div class="item" ng-class="{active : $first}" ng-repeat="item in slides">
      <img class="first-slide" ng-src="{{item.media[0]['media-metadata'][0].url}}" alt="First slide">
      <div class="container">
        <div class="carousel-caption">
          <h1>{{item.title}}</h1>
          <p>{{item.main}}</p>
          <p><a class="btn btn-lg btn-primary" href="#" role="button">Sign up today</a></p>
        </div>
      </div>
    </div>
  <a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
    <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
    <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div><!-- /.carousel -->

1 个答案:

答案 0 :(得分:1)

<div id="myCarousel" class="carousel" ng-class="slides.length?'slide':''" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
    <li ng-repeat="item in slides" data-target="#myCarousel" data-slide-to="item" ng-class="{active : $first}"></li>
</ol>

我的回答可能为时已晚,但可能有助于将来需要的人。在class =“carousel slide”存在的第一行代码中,必须用class =“carousel”替换ng-class =“slides.length?'slide':''”,这样可确保仅在项目存在时添加幻灯片效果