ng2 + webpack 在外部库中引用 html dom 元素
ng2 + webpack refer html dom element in external library
您好Angular 2 和 Webpack 开发人员,
我已经使用 angular 2 和 systemjs 很长一段时间了,对 webpack 还是个新手(有点挣扎就开始喜欢它)。
我有一个组件 html 如下:
<div id="partners-slider" class="partners">
<div class="partners__slider js-slick-slider">
<a class="partners__item"><img src="assets/logo-company-1.png" alt="">Elite Construction Group, LLC</a>
<a class="partners__item"><img src="assets/logo-company-2.png" alt="">Pro Era Limited</a>
</div></div>
它基本上是一个滑块。
我有一个库,我在很多项目中使用它,用于动画和东西。
启动滑块的函数如下:
function initPartnersSlider(container) {
var $partnersSlider = $(container) ;
if (!$partnersSlider.length) return;
$partnersSlider
.find('.js-slick-slider')
.slick({
dots: false,
infinite: true,
speed: 300,
slidesToShow: 5,
autoplay: true,
accessibility: false,
prevArrow: $partnersSlider.find('.js-partners-prev'),
nextArrow: $partnersSlider.find('.js-partners-next'),
responsive: [
{
breakpoint: 1100,
settings: {
slidesToShow: 4
}
},
{
breakpoint: 1000,
settings: {
slidesToShow: 3
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 1
}
}
]
});}
函数调用:
initPartnersSlider('#partners-slider');
这里的问题是 $partnersSlider.length
总是 0。
根据我的理解,html 元素被 webpack (prod) 放置在一个缩小的文件中
main.bundle.js
我将 index.html 中的外部 javascript 文件称为脚本标记。它似乎无法识别带有 id="properties-slider"
的 dom 元素,因为该元素在 main.bundle.js 中?我能够调试并在我的库代码中看到它。
以前有人这样做过吗?
感谢您的帮助!
此问题的可能解决方案是在调用方法之前设置超时。如果有更好的解决方案请post.
setTimeout(() => {
initPartnersSlider('#partners-slider');
}, 0);
不太有说服力,但对我有用。
您好Angular 2 和 Webpack 开发人员, 我已经使用 angular 2 和 systemjs 很长一段时间了,对 webpack 还是个新手(有点挣扎就开始喜欢它)。
我有一个组件 html 如下:
<div id="partners-slider" class="partners">
<div class="partners__slider js-slick-slider">
<a class="partners__item"><img src="assets/logo-company-1.png" alt="">Elite Construction Group, LLC</a>
<a class="partners__item"><img src="assets/logo-company-2.png" alt="">Pro Era Limited</a>
</div></div>
它基本上是一个滑块。 我有一个库,我在很多项目中使用它,用于动画和东西。
启动滑块的函数如下:
function initPartnersSlider(container) {
var $partnersSlider = $(container) ;
if (!$partnersSlider.length) return;
$partnersSlider
.find('.js-slick-slider')
.slick({
dots: false,
infinite: true,
speed: 300,
slidesToShow: 5,
autoplay: true,
accessibility: false,
prevArrow: $partnersSlider.find('.js-partners-prev'),
nextArrow: $partnersSlider.find('.js-partners-next'),
responsive: [
{
breakpoint: 1100,
settings: {
slidesToShow: 4
}
},
{
breakpoint: 1000,
settings: {
slidesToShow: 3
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 1
}
}
]
});}
函数调用:
initPartnersSlider('#partners-slider');
这里的问题是 $partnersSlider.length
总是 0。
根据我的理解,html 元素被 webpack (prod) 放置在一个缩小的文件中
main.bundle.js
我将 index.html 中的外部 javascript 文件称为脚本标记。它似乎无法识别带有 id="properties-slider"
的 dom 元素,因为该元素在 main.bundle.js 中?我能够调试并在我的库代码中看到它。
以前有人这样做过吗? 感谢您的帮助!
此问题的可能解决方案是在调用方法之前设置超时。如果有更好的解决方案请post.
setTimeout(() => {
initPartnersSlider('#partners-slider');
}, 0);
不太有说服力,但对我有用。