Creé un proyecto usando 'jhipster' y es un proyecto Angular 4 . Está utilizando Webpack e 'hilo'. Instalé metisMenu para mi requisito, está allí en el archivo package.json . metisMenu en vendor.ts y también en 'webpack' pero muestra el error jQuery(...).metisMenu is not a function .
Estoy usando Webpack por primera vez. ¿Cuál es la forma exacta de definirlo en Webpack ?
metisMenu directamente en el Component requerido y resolvió mi problema.
Gracias a Jeeten Parmar, pude resolver esto usando el siguiente código en mi componente al que hacía referencia:
import 'metismenu'; ... // you can call this inside ngAfterViewInit() in your component jQuery('#side-menu').metisMenu();Espero que esto ayude
Si usó angular cli con angular> 2 -> 4, puede declarar en .angular-cli.json así:
"scripts": [ "../node_modules/jquery/dist/jquery.min.js", "../node_modules/metismenu/dist/metisMenu.js" [... others jquery plugin ...] ],Y en su componente, declara jquery así:
declare let $: any;Debe usar ngAfterViewInit para esperar el evento "dom ready". Finalmente, tienes un componente como este:
import {Component, ElementRef, AfterViewInit} from '@angular/core'; declare let $: any; @Component({ [...] ngAfterViewInit() { this.menuElement = this._elementRef.nativeElement.querySelector('#side-menu'); (<any>$(this.menuElement)).metisMenu(); }tenga cuidado, si importa jquery así:
import * as $ from 'jquery'; $ es una nueva instancia de jquery, por lo que MetisMenu no se implementará dentro y el objeto jquery se reemplaza por la nueva instancia en global
Disfrutar :)