我是AngularJS的新手,非常感谢您的建议。 我有带图像的滑块:
<ul rn-carousel rn-carousel-index="carouselIndex" rn-carousel-buffered>
<li ng-repeat="slide in slides track by slide.id" ng-class="'id-' + slide.id">
<div ng-style="{'background-image': 'url(' + slide.image + ')'}" class="bgimage">
</div>
</li>
</ul>
在我的控制器中,我为$scope.slides
分配了一些图像:
$scope.slides = [];
$.each(defaultImages,function(i, element)
{
var slide = {
image://...
};
$scope.slides.push(slide);
});
另外,我有一个更改幻灯片数组的函数:
$scope.colorClicked = function ($index, color_id) {
//...
$scope.slides = [];
$.each(images,function(i, element)
{
var slide = {
image:/...
};
$scope.slides.push(slide);
});
}
我有两个问题:
1)它工作正常,但有时当我的colorClicked
函数触发时,滑块上当前显示的图像不会改变。
我想知道我应该以某种方式更新滑块或范围?我在我的函数中尝试了$scope.$apply()
,但它没有帮助。
2)即使我将数组传递给slide集合,我仍然在我的控制台中出错:Error: the slides collection must be an Array
虽然我的滑块工作正常。
答案 0 :(得分:0)
解决错误&#39;错误:幻灯片集合必须是错误的数组(本机)angular-carousel.min.js:8&#39;
//Controller
$scope.banners = [];
Banners.getListBanners().then(function (banners) {
$scope.banners = banners;
});
//view
<ul rn-carousel rn-carousel-auto-slide rn-carousel-transition="slide" ng-show="banners.length > 0">
<li ng-repeat="banner in banners">
<p ng-bind-html="banner.title | to_trusted"></p>
<img ng-if="isBlank(banner.link)" ng-src="{{banner.img}}" alt="{{banner.title | to_trusted}}">
<a ng-if="!isBlank(banner.link)" ng-click="openInExternalBrowser(banner.link, banner.type)" href="#">
<img ng-src="{{banner.img}}" alt="{{banner.title | to_trusted}}">
</a>
</li>
</ul>