我正在尝试实现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>
控制器
.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'}
];
};
*修改
我尝试了常规的bootstrap轮播,它运行正常。我可以用它代替解决问题,但我宁愿弄清楚我用ui-bootstrap旋转木马做错了什么。
答案 0 :(得分:34)
我收到了类似的错误,它说:&#34; TypeError:无法读取属性&#39; slide&#39;未定义&#34;。
我按照其中一条评论进行了更改:
index="slide.id"
的
index="$index"
这解决了这个问题。我注意到这没有答案所以我想提交这个。
答案 1 :(得分:5)
问题在于ids - 你的图片的第一个id应为0,你会很好