Ceci est un code jquery dans mon modèle HTML . J'utilise un modèle HTML et le découpé en différents composants et créé un projet angulaire .
// class add mouse hover
jQuery('.custom-nav > li').hover(function(){
jQuery(this).addClass('nav-hover');
}, function(){
jQuery(this).removeClass('nav-hover');
});
Ce code ne fonctionne pas.
Le fichier est enregistré dans un dossier nommé assets à l'intérieur de node_modules en tant que scripts_custom.js . Le fichier est inclus dans angular.json.
Je suis nouveau dans angular6 . Aidez-moi à le corriger.
4 Réponses :
Ce n'est pas une bonne pratique d'inclure jquery dans un projet angulaire, mais vous voulez toujours l'utiliser, vous pouvez écrire declare $ any dans le fichier de composant après toute la section d'importation
S'il vous plaît laissez-moi savoir si cela résout votre problème
Je suis d'accord avec @Ankur Shah, ce n'est pas une bonne pratique d'utiliser Jquery dans un projet angulaire. À la place, vous pouvez utiliser une directive personnalisée ou utiliser les événements (mouseenter) et (mouseleave).
Consultez le lien ci-dessous toggleclass
Pour inclure du code jQuery dans votre composant, procédez comme suit:
Étape 1: Ajoutez jQuery dans votre index.html
import { Component } from '@angular/core';
declare var jquery:any;
declare var $ :any;
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'angular 4 with jquery';
//Add jQuery here
}
Étape 2: Déclarez jQuery dans votre composant où vous souhaitez ajouter ce code comme suit
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> </script>
J'espère que cela fonctionnera pour vous. Merci
Cette vidéo m'a aidé à résoudre le problème.
https://www.youtube .com / watch? v = IlgsWcYnPdo
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'frontend';
ngOnInit(){
$(document).ready(function(){
// class add mouse hover
jQuery('.custom-nav > li').hover(function(){
jQuery(this).addClass('nav-hover');
}, function(){
jQuery(this).removeClass('nav-hover');
});
});
}
}
J'espère que c'est un bon moyen de le résoudre. Merci à tous.
pourquoi ne pas utiliser la directive à la place pour ajouter une classe?
Merci pour le commentaire @CruelEngine. En fait, je suis nouveau sur angular6. Je viens de copier la page js sur les modules de nœuds et j'ai essayé. Pourriez-vous s'il vous plaît me donner une biche pour convertir cela?
veuillez regarder stackoverflow.com/a/42633254/3769965
@RaruChempazhanthy vérifiez le commentaire ci-dessus
Utiliser JQuery dans Angular, c'est comme équiper un vaisseau de roues: c'est possible, mais cela ne veut pas dire que c'est utile. Peut-être que le mouvement de la roue fera fonctionner votre vaisseau, mais ce n'est peut-être pas la façon dont il a été conçu pour fonctionner