如何将自定义变量传入Swiper实例的配置中?
解决方法:将自定义变量传入Swiper配置
嘿,你其实已经踩中了核心的正确做法!你当前的代码里已经把cgggowl_slidesPerView传入了Swiper的slidesPerView配置项中——就是这行:
slidesPerView: cgggowl_slidesPerView,
不过这里有几个细节可以优化,避免潜在的运行异常:
- 给变量设置兜底默认值:如果
cgggowl_settings里不存在slidesPerView这个属性,变量会变成undefined,可能导致Swiper初始化出问题,可以给它加个合理的默认值 - 补充未定义的依赖变量:你代码里用到了
cgggowl_spaceBetween但没定义,同样需要从配置数据里获取并设置默认值 - 检查容器是否存在:避免在页面没有
.swiper-container元素时执行初始化代码
优化后的完整代码如下:
var cggowl_jav_info_cont = $scope.find('.cggowl-row').eq(0); var cgggowl_settings = cggowl_jav_info_cont.data('settings') || {}; // 确保settings是对象,避免后续取值报错 var cgggowl_slidesPerView = cgggowl_settings['slidesPerView'] || 1; // 默认每张显示1个幻灯片 var cgggowl_spaceBetween = cgggowl_settings['spaceBetween'] || 0; // 默认幻灯片间距为0 // 确认容器存在后再初始化Swiper if (document.querySelector('.swiper-container')) { var mySwiper = new Swiper('.swiper-container', { slidesPerView: cgggowl_slidesPerView, spaceBetween: cgggowl_spaceBetween, }); }
这样调整后,即使配置数据缺失或者容器不存在,代码也能更稳健地运行~
内容的提问来源于stack exchange,提问作者user3697484
相关产品推荐
相关产品推荐

