类型“JQuery”上不存在属性“slick”

2024-04-04

我有一个想要使用的 Angular 6 项目光滑的滑块 http://kenwheeler.github.io/slick/和。首先我安装了 jQuery

npm 我jquery

然后是光滑的旋转木马

npm 我光滑的轮播

然后我对 angular.json 文件进行了必要的编辑

"styles": [
 "node_modules/bootstrap/dist/css/bootstrap.min.css",
 "node_modules/font-awesome/css/font-awesome.css",
 "node_modules/slick-carousel/slick/slick.css"

],
 "scripts": [
 "node_modules/jquery/dist/jquery.min.js",
 "node_modules/slick-carousel/slick/slick.min.js"
]

然后我创建一个简单的滑块布局

<div class="mySlider">
  <div><h3>1</h3></div>
  <div><h3>2</h3></div>
  <div><h3>3</h3></div>
  <div><h3>4</h3></div>
  <div><h3>5</h3></div>
  <div><h3>6</h3></div>
</div>

在我的打字稿中,首先我从 jquery 导入 *。

import * as $ from 'jquery';

最后,我在 ngOnInit 中调用 slick 方法

  ngOnInit() {
    $(document).ready(function() {
      $('.mySlider').slick({
        infinite: true,
        slidesToShow: 3,
        slidesToScroll: 3
      });
    });
  }

当我尝试编译时,我收到以下错误消息:

src/app/components/slider/slider.component.ts(20,22) 中的错误:错误 TS2551:类型“JQuery”上不存在属性“slick”。 您指的是“点击”吗?

所以我尝试在文件顶部将 slick 声明为变量。

declare var slick: any;

但这没有帮助。所以我尝试像使用 jQuery 一样创建导入。

import * as slick from 'slick-carousel';

但这只会在尝试编译时给我以下错误消息:

src/app/components/slider/slider.component.ts(3,24) 中的错误:错误 TS2306:文件 'D:/development/DDI World Front 结束/DDIWorld_frontEnd/node_modules/@types/slick-carousel/index.d.ts' 不是一个模块。

我不确定还可以尝试什么或者我做错了什么。谢谢你的帮助。

这是我的完整 slider.component.ts

import { Component, OnInit } from '@angular/core';
import * as $ from 'jquery';
// import * as slick from 'slick-carousel';
// declare var slick: any;



@Component({
  selector: 'app-slider',
  templateUrl: './slider.component.html',
  styleUrls: ['./slider.component.css']
})
export class SliderComponent implements OnInit {



  constructor() { }

  ngOnInit() {
    $(document).ready(function() {
      $('.mySlider').slick({
        infinite: true,
        slidesToShow: 3,
        slidesToScroll: 3
      });
    });
  }

}

Edit

这里有一个堆栈闪电战 https://angular-xyfexj.stackblitz.io/但我在那里遇到了不同的错误。


以这种方式导入 jQuery:

declare var $: any;

将代码更改为:

(<any>$('.mySlider')).slick({
    infinite: true,
    slidesToShow: 3,
    slidesToScroll: 3
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型“JQuery”上不存在属性“slick” 的相关文章

随机推荐