我想实现ui-bootstraps传送带,但当页面加载第一个图像不显示,但控件和指标。UI引导传送带第一张幻灯片不显示,然后在最后一张幻灯片崩溃
然后,当第二个图像显示,我可以使用控件返回到第一个图像,它会显示罚款。我可以使用控件来到最后一张幻灯片或让它自动滑动,但是当我到达最后一张幻灯片时,传送带停止工作,并给出错误“无法读取未定义的属性”幻灯片,该幻灯片指向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旋转木马做错了什么。
试图改变你的代码通过$指数slide.id,而不是使用轨迹跟踪,并看看这是否有帮助。 –
@AlexChance这样做了。非常感谢。我想知道为什么我的原始方法不起作用,因为文档是如何工作的。 –
这可能是你格式化你的ID的方式。我调试了你网站上的代码,并看到这一行'angular.extend(q [s] .slide || {} .....'当我检查's'时,它包含“4”,并且由于数组的幻灯片只有4个元素,最后一个元素是[3],这就是为什么它会抛出错误。也可以解释为什么它不会立即显示第一张幻灯片,如果它期望[0],并且您的第一张幻灯片ID为“1”,使其成为第二个元素 –