См. Этот пример здесь: http://next.plnkr.co/edit/UBaGrfDAfrVa6eJN
Данные перемещаются в асинхронную службу для имитации вызова веб-службы. Я делаю два звонка с интервалом в 5 секунд, чтобы смоделировать новые данные. Обязательно очистите объект ползунка, когда область будет уничтожена.
Ключевая часть - это функция связи. scope.$watch
атрибут slideit
для изменений и использование $timeout()
для запуска цикла дайджеста.
link: function(scope, elm, attrs) {
var slider;
scope.$watch('slideit', function() {
if(slider) {
slider.destroySlider();
}
scope.bestDeals = scope.slideit;
if (scope.bestDeals && scope.bestDeals.length > 0) {
$timeout(function() {
slider = elm.bxSlider({
captions: true,
auto: true,
autoControls: true,
slideWidth: 110,
minSlides: 1,
maxSlides: 6,
moveSlides: 1,
slideMargin: 10,
pager: false,
autoHover: true,
});
});
}
});
scope.$on('destroy', function() {
if (slider) {
slider.destroySlider();
}
});
},