javascript - 使用 AngularJS 动态内容加载 Owl Carousel 2

标签 javascript angularjs angularjs-directive owl-carousel-2

我无法在 angularjs 动态内容中加载 owl 轮播。

我使用这个(编辑过的)html:

<div id="Galeria" owlcarousel class="youplay-carousel gallery-popup">
      <a class="angled-img" href="http://www.youtube.com/watch?v={{video}}" ng-repeat="video in juego.Galerias.Videos">
         <div class="img">
            <img src="http://img.youtube.com/vi/{{video}}/maxresdefault.jpg" alt="">
         </div>
         <i class="fa fa-play icon"></i>
      </a>

      <a class="angled-img" href="/img/galerias/{{imagen}}" ng-repeat="imagen in juego.Galerias.Imagenes">
         <div class="img">
            <img src="/img/galerias/{{imagen}}" alt="">
         </div>
         <i class="fa fa-search-plus icon"></i>
      </a>
   </div>

以及我的应用程序的这个(编辑过的)指令:

app.directive('owlcarousel', function() {

    var linker = function(scope, element, attr) {
        var loadCarousel = function() {
            console.log(element);
            element.owlCarousel({
                loop: !0,
                stagePadding: 70,
                nav: !0,
                autoplay: 0 ? !0 : !1,
                autoplayTimeout: 0,
                autoplaySpeed: 600,
                autoplayHoverPause: !0,
                navText: ["", ""],
                responsive: {
                    0: {
                        items: 1
                    },
                    500: {
                        items: 2
                    },
                    992: {
                        items: 3
                    },
                    1200: {
                        items: 4
                    }
                }
            });
        }

        scope.$watch("juego.Galerias.Videos", function(value) {
            loadCarousel(element);
        });

        scope.$watch("juego.Galerias.Imagenes", function(value) {
            loadCarousel(element);
        })
    }

    return {
        restrict: "A",
        link: linker
    }

});

但是每次加载新内容时我都无法加载轮播。我尝试绑定(bind)jquery事件,调用 Controller 中的函数......等等。

PD:我使用 ng-routes 并动态加载 html。

最佳答案

您可以将模型传递到指令作用域,然后执行 scope.$watch 并使用 reinit 方法重新初始化 owlCarousel。这只是一个想法,如果您可以指定 plunkr 或 fiddle 会更容易提供帮助。

关于javascript - 使用 AngularJS 动态内容加载 Owl Carousel 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32215133/

相关文章:

javascript - 使用 JavaScript .map() 和 .filter() 按 lang 搜索作者/书籍数据模块

javascript - 如何将图像放入圆形 Canvas ?

javascript - 包含许多断言的 Cypress 测试的最佳实践

angularjs - 如何禁用 angulars type=email 验证?

html - 什么元素在中心?

javascript - Angular 列表仅第一次显示类别

javascript - 如何禁用 iframe 中的脚本?

javascript - 在 Protractor 的哪里放置 implicitlyWait?

javascript - 我收到错误错误 : [$compile:tplrt] while using directive in angularjs

javascript - 为什么我的范围不显示指令?