繁体   English   中英

尝试在角度5中使用外部Javascript库

[英]Trying to use external Javascript library in angular 5

我知道有类似的问题,但我仍然无法让它工作..

所以我想使用slick.js,所以我下载了文件,并将它放在我的角度应用程序的资产文件夹中

我已经导入了我的库

angular.cli.json

"styles": [
    "./assets/scripts/slick-1.8.0/slick.css",
    "./assets/scripts/slick-1.8.0/slick-theme.css"
],
"scripts": [
    //jQuery imports above
    "./assets/scripts/slick-1.8.0/slick.min.js"
]

然后在我的组件中......

import { Component, OnInit, Injector } from '@angular/core';
import { AppComponentBase } from '@shared/common/app-component-base';
import * as Slick from '../../../../assets/scripts/slick-1.8.0/slick/slick.min.js';
@Component({
    selector: 'app-di-type2',
    templateUrl: './di-type2.component.html',
    styleUrls: ['./di-type2.component.scss']
})

export class DiType2Component extends AppComponentBase implements OnInit {

   public constructor(
    injector: Injector
   ) {
     super(injector);
   }

   ngOnInit() {
      const slideContainer = document.querySelector('.slider');
      slideContainer.slick({
         autoplay: true,
         autoplaySpeed: 3500,
      });
   }

}

从我读到的关于将外部javascript库导入角度应用程序的内容应该可以工作..我在vscode中得到一个错误,说[ts] Property 'slick' does not exist on type 'Element'.any

然后在我的控制台中得到

在此输入图像描述

任何帮助,将不胜感激!

谢谢!

如果在index.html中导入脚本,则可以在组件中导入后将库声明为类型为“any”的var(假设它没有输入定义* .d.ts):

declare let <yourlib>: any;

使用Node和NPM安装Slick.js

https://nodejs.org/

npm install slick-carousel --save

https://www.npmjs.com/package/slick-carousel

安装此npm后,它将作为依赖项保存在package.json文件中。

然后导入Slick:

import 'slick-carousel';

someElement.slick();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM