RactiveJS装饰器初始化问题

时间:2016-01-19 19:42:05

标签: ractivejs

我正在使用装饰器来制作一些滑块,如下所示:

content = new Ractive({
    el: '.wrapper',
    template: templates.wrapper,
    partials: templates,
    data : { ... },
    decorators: {
        carousel: function( node )
        {
            console.log( 'carousel init' );
            carousel = $( node ).owlCarousel({ 
                items: 1,
                navigation: false 
            });

            return {
                teardown: function () {
                    console.log( 'carousel destroy' );
                    carousel.trigger('destroy.owl.carousel').removeClass('owl-carousel owl-loaded');
                    carousel.find('.owl-stage-outer').children().unwrap();
                }
            }
        }
    }
}

正如您在日志中看到的那样,当在具有inited轮播的模板与另一个具有此装饰器的模板之间交换时,第一个装饰器teardown正在在新模板的装饰器为initiated后触发,因此第二个模板上的轮播获取torn down而不是第一个模板中的轮播。

enter image description here

我做错了吗?谢谢!

更新

我在这里制作了一个jsfiddle:https://jsfiddle.net/05sq8o2k/6/

如果您收到警告,请务必点按load unsafe scripts,因为ractivejs cdn不支持https,因为我现在可以看到,所以jsfiddle有点不同意。

1 个答案:

答案 0 :(得分:1)

这似乎在Ractive的下一个版本中已得到修复。更新您的小提琴使用:https://cdn.ractivejs.org/edge/ractive.min.js

亲切的问候

鲍勃