angular - TypeError: _this.$instance.slick är inte en funktion


Jag använder ngx-slick-carousel i mitt Angular-projekt för en slider. Men det uppstår ett fel när jag navigerar till denna komponent där slidern finns, så min konsol visar detta fel

FEL TypeError: _this.$instance.slick är inte en funktion vid ngx-slick-carousel.js:121 vid ZoneDelegate../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:391) vid Zone../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:150) vid NgZone.push../node_modules/@angular/core/fesm5/core.js.NgZone.runOutsideAngular (core.js:3779) vid SlickCarouselComponent.push../node_modules/ngx-slick-carousel/fesm5/ngx-slick-carousel.js.SlickCarouselComponent.initSlick (ngx-slick-carousel.js:114) vid SlickCarouselComponent.push../node_modules/ngx-slick-carousel/fesm5/ngx-slick-carousel.js.SlickCarouselComponent.ngAfterViewChecked (ngx-slick-carousel.js:70) vid callProviderLifecycles (core.js:9563) vid callElementProvidersLifecycles (core.js:9534) vid callLifecycleHooksChildrenFirst (core.js:9524) vid checkAndUpdateView (core.js:10460)

HTML

<ngx-slick-carousel class="carousel" #slickModal="slick-carousel" [config]="slideConfig2">
        <div ngxSlickItem *ngFor="let legislation of objLegislationList" class="slide">
          <div class="descBox row-2">
            <img
              src="http://1.bp.blogspot.com/-Qy1y_Ur-_mE/TtxVJ86z2EI/AAAAAAAAAss/meLIad_uSfk/s1600/law-background-1-767326.jpg" />
            <h3 onMouseOver="this.style.cursor='pointer'">{{legislation.Title}}</h3>
            <p style="margin-bottom: 0;">Date : {{legislation.Date}}</p>
            <p>Category {{legislation.CatName}}</p>
          </div>
        </div>
      </ngx-slick-carousel>

komponent.ts

ngAfterViewInit() {
    this.iniSlickJs();
  }
private iniSlickJs() {
    const htmlScriptElement = document.createElement('script');
    htmlScriptElement.src = 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js';
    this.elementRef.nativeElement.appendChild(htmlScriptElement);
  }

Svar #1

installera dessa paket:

npm install jquery --save
npm install slick-carousel --save
npm install ngx-slick-carousel --save

uppdatera din angular.json-fil :

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

efter att du har gjort uppdateringen, se till att köra ng serve igen

Svar #2

Jag hoppas att du har installerat slick-biblioteket framgångsrikt med hjälp av dessa kommandon:

npm install jquery --save
npm install slick-carousel --save
npm install ngx-slick-carousel --save

Inkludera jquery och slick js i "scripts" i din angular.json-fil :

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

och sedan kompilera om koden med ng serve. Jag hoppas att det skulle vara till hjälp för dig. Tack