RactiveJS 装饰器初始化问题
RactiveJS decorator init issue
我正在为一些滑块使用装饰器,如下所示:
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
而不是第一个模板中的轮播。
我做错了什么吗?谢谢!
更新
我在这里为它制作了一个 jsfiddle:https://jsfiddle.net/05sq8o2k/6/
如果收到警告,请务必点击 load unsafe scripts
,因为据我所知,ractivejs
cdn 不支持 https
,所以 jsfiddle 现在有点不同意它。
这似乎在下一个版本的 Ractive 中得到修复。更新您的 fiddle 以使用:https://cdn.ractivejs.org/edge/ractive.min.js
亲切的问候
鲍勃
我正在为一些滑块使用装饰器,如下所示:
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
而不是第一个模板中的轮播。
我做错了什么吗?谢谢!
更新
我在这里为它制作了一个 jsfiddle:https://jsfiddle.net/05sq8o2k/6/
如果收到警告,请务必点击 load unsafe scripts
,因为据我所知,ractivejs
cdn 不支持 https
,所以 jsfiddle 现在有点不同意它。
这似乎在下一个版本的 Ractive 中得到修复。更新您的 fiddle 以使用:https://cdn.ractivejs.org/edge/ractive.min.js
亲切的问候
鲍勃