UI bootstrap carousel第一张幻灯片不显示然后在最后一张幻灯片崩溃

Gra*_*dan 10 carousel angularjs angular-bootstrap

我正在尝试实现ui-bootstraps轮播,但是当页面加载时,第一个图像没有显示但控件和指示器没有显示.

然后,当第二个图像显示时,我可以使用控件返回到第一个图像,它将显示正常.我可以使用控件来到最后一张幻灯片或让它自动滑动但是当我到达最后一张幻灯片时,轮播停止工作并给出错误"无法读取未定义的属性'幻灯片'"指向ui的第576行-bootstrap-tpls.js文件.

不知道我做错了,因为这看起来很简单,这里是我的代码,这里是一个链接到一个网站,其中有一个现实的例子.

示例站点

视图

<div class="slider">
  <uib-carousel active="active" interval="3000">
    <uib-slide ng-repeat="slide in home.slides track by slide.id" index="slide.id">
      <img class="img-responsive" ng-src="{{slide.img}}" alt="{{slide.alt}}">
    </uib-slide>
  </uib-carousel>
</div>
Run Code Online (Sandbox Code Playgroud)

调节器

.controller('HomeCtrl', function() {
  var vm = this;

  vm.slides = [
    {id: "1", img: 'img/slider/customer.jpg', alt: 'customers'},
    {id: "2", img: 'img/slider/juices.jpg', alt: 'e-juice'},
    {id: "3", img: 'img/slider/lineup.jpg', alt: 'vaporizers'},
    {id: "4", img: 'img/slider/vapeon.jpg', alt: 'vape on'}
  ];
};
Run Code Online (Sandbox Code Playgroud)

*编辑

我尝试了常规的bootstrap轮播,它工作正常.我可以用它代替解决问题,但我宁愿弄清楚我用ui-bootstrap旋转木马做错了什么.

小智 35

我收到了类似的错误,它说:"TypeError:无法读取未定义的属性'slide'".

我按照其中一条评论进行了修改:

index="slide.id"
Run Code Online (Sandbox Code Playgroud)

对于

index="$index"
Run Code Online (Sandbox Code Playgroud)

这解决了问题.我注意到这没有答案所以我想提交这个.

  • 因此,基本上`slide.id`应该从*0*(_zero_)开始,因为属性`index`似乎是指array_的_index. (3认同)

小智 5

问题出在ids - 你的图片的第一个id应为0,你会很好