【发布时间】:2017-01-02 10:29:35
【问题描述】:
我对使用 angularjs 的 owlCarousel2 滑块感到困扰。
下面是我的 app.js。
var app = angular.module('plunker', []);
这是我的控制器
app.controller('MainCtrl', function($scope) {
**Item array which are showing in slide.**
$scope.items = [1,2,3,4,5,6,7,8,9,10]
$scope.addItem = function(arr, $event) {
$event.preventDefault();
arr.push(arr[arr.length - 1] +1);
var firstOwl = $("#first").data('owlCarousel');
firstOwl.addItem("<p>" + arr[arr.length - 1] + "</p>");
}
}).directive("owlCarousel", function() {
return {
restrict: 'E',
transclude: false,
link: function (scope) {
scope.initCarousel = function(element) {
// provide any default options you want
var defaultOptions = {
};
var customOptions = scope.$eval($(element).attr('data-options'));
// combine the two options objects
for(var key in customOptions) {
defaultOptions[key] = customOptions[key];
}
// init carousel
var curOwl = $(element).data('owlCarousel');
if(!angular.isDefined(curOwl)) {
$(element).owlCarousel(defaultOptions);
}
scope.cnt++;
};
}
};
})
.directive('owlCarouselItem', [function() {
return {
restrict: 'A',
transclude: false,
link: function(scope, element) {
// wait for the last item in the ng-repeat then call init
if(scope.$last) {
scope.initCarousel(element.parent());
}
}
};
}]);
它工作正常并显示所有 10 张幻灯片,但是当我像下面这样更新项目数组时。
$scope.items = [1,2,3,4,5,6,7,8,9,10,11,12];
$("#owl-demo").trigger('refresh.owl.carousel');
在那之后 12 张幻灯片没有显示与之前相同的滑块。
我怎样才能让我的滑块使用我的 ng-repeat 数组进行更新。
【问题讨论】:
-
您找到解决方案了吗?我也面临同样的问题。
-
@VishalSingh 你能看看我的回答吗?也许会有所帮助