Je travaille sur un projet CLI angular où je dois appeler des fonctions jQuery.
J’ai inclus mon js dans le fichier angular.json :
"scripts": [ "node_modules/jquery/dist/jquery.min.js", "src/custom.js" ]
fonction jQuery :
function A() { alert('A'); } function B() { alert('B'); }
J’ai importé jQuery dans mon composant où j’ai besoin d’appeler ces fonctions jQuery: –
import * as $ from 'jquery';
tsconfig.app.json :
{ "extends": "../tsconfig.json", "comstackrOptions": { "outDir": "../out-tsc/app", "allowJs": true, "baseUrl": "./", "module": "es2015", "types": [] }, "exclude": [ "test.ts", "**/*.spec.ts" ] }
Maintenant, comment importer custom.js dans mon composant et comment appeler ces fonctions A & B?
Je vous recommande d’installer les types pour jquery si vous ne l’avez pas déjà fait:
npm install --save @types/jquery
Donc, vous pouvez simplement l’utiliser simplement en important jQuery ( jquery
) dans votre composant / service:
import 'jquery';
Lorsque vous rencontrez des problèmes lors de la compilation ou de la build
votre application, vous pouvez résoudre le problème en introduisant votre sélecteur dans (
ou (... as any)
:
// Use this ( $('.myElement')).A(); // or this ($('.myElement') as any).A();
Mise à jour (voir commentaires)
Pour exécuter le code une fois la page prête, essayez de mettre en œuvre AfterViewInit
sur votre composant principal ( app-root
):
import { Component, OnInit, AfterViewInit } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) export class AppComponent implements OnInit, AfterViewInit { constructor(private someService: SomeService) { } ngAfterViewInit() { this.someService.someFunction(); } }
documentation pour AfterViewInit