AMP开发:如何通过amp-state的carouselpos值调用goToSlide?
解决AMP carousel.goToSlide调用不生效的问题
嘿,我一眼就发现你代码里的两个小细节问题啦,都是很容易忽略的低级错误:
1. 数组元素访问路径错误
从你提供的AMP.printState()日志能看到,myRemoteState.items是一个数组结构(被[]包裹:[{"carouselpos":"37"}]),所以你不能直接通过.items.carouselpos取值,必须先定位到数组里的第一个元素,再访问它的carouselpos属性。
正确的取值路径应该是:myRemoteState.items[0].carouselpos
2. 数据类型不匹配问题
日志里的carouselpos是字符串类型的"37",但goToSlide方法需要的是数字类型的索引值。AMP Bind支持简单的类型转换,你可以通过两种方式把字符串转成数字:
方式一:用+运算符强制转换
carousel.goToSlide(index=+myRemoteState.items[0].carouselpos)
方式二:用Number()函数转换
carousel.goToSlide(index=Number(myRemoteState.items[0].carouselpos))
你可以先通过AMP.printState('myRemoteState.items[0].carouselpos')验证这个路径确实能拿到正确的值,再测试goToSlide的调用,应该就能正常生效啦!
内容的提问来源于stack exchange,提问作者Mike Atkinson
相关产品推荐
相关产品推荐

