【发布时间】:2018-07-06 15:41:11
【问题描述】:
您好,我正在使用 lightslider 和 Angular4,但我在 lightslider() 的初始化中遇到了问题。当我在 index.html 中的任何 html 元素上初始化轻型滑块时,它可以工作,但是当我导航到应该初始化滑块的页面时,它会失败。例如,
Home.html 模板和Home.ts 组件是我的应用程序的主页和首页,sliderHome 元素上有滑块,另一个页面是Info.htmltemplate 和Info.ts 组件,@987654328 上有滑块@ 元素。因此,当用户登陆第一页 Home 页面时,滑块正在工作,但是当用户从该页面导航到 Info 页面时,滑块无法正常工作,这是因为它没有被初始化。加载特定组件时如何对其进行初始化。
代码如下,放在index.html page(main page)中,
$(document).ready(function () {
setTimeout(function () {
$('#sliderHome').lightSlider({
adaptiveHeight: true,
item: 1,
slideMargin: 0,
loop: true
});
$('#inforSlider').lightSlider({
adaptiveHeight: true,
item: 1,
slideMargin: 0,
loop: true
});
}, 500);
});
【问题讨论】:
-
发布代码。一些关于不工作的东西的叙述并不是真的有用
-
@tchelidze 我更新了代码,我认为问题在于应用程序首次加载它只能找到sliderHome元素,因为当时没有加载inforSlider元素并且当用户导航到信息页面元素时但此时脚本不会执行。
-
是的,这听起来很正确,因此您可以将
inforSlider的初始化移动到相应的 html。 -
@tchelidze 可以发布一些代码或代码链接,以便我从那里获得参考吗?我尝试在 ngAfterViewInit 方法的组件中对其进行初始化,但它会抛出错误,例如 lightSlider is not a method 即使页面上也加载了滑块 JS。