我使用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 -->
答案 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':''”,这样可确保仅在项目存在时添加幻灯片效果