J'ai installé Jquery et Jquery-ui
npm install --save jquery jquery-ui
Les fichiers sont dans le répertoire node_modules . J'ai un composant qui déclare Jquery
declare var $: JQueryStatic;
Mes fonctions jquery fonctionnent parfaitement, mais pas les fonctions jquery-ui.
$('some-div').dropdown(); // works
$('window').draggable(); // draggable is not recognized as a function
Donc, évidemment, mon inclusion pour jquery-ui n’est pas correcte. J'ai essayé d'inclure un tas de choses différentes dans ma page .angular-cli.json sans succès.
Choses que j'ai essayées dans mon fichier .angular-cli:
...
"scripts": [
"../node_modules/jquery/dist/jquery.min.js",
"../node_modules/jquery-ui/ui/widgets/draggable.js",
"../node_modules/jquery-ui/ui/draggable.js",
]
J'ai essayé d'importer directement dans le composant, mais cela posait des problèmes de définition de $ ui. J'ai aussi eu des erreurs que défini n'est pas défini.
J'ai consulté npm jquery-ui et Guides de mise à niveau Jquery-ui
Des idées où je me trompe?
La solution pour définir jquery-ui dans angular-cli.json (et éviter de l'ajouter dans index.html) est la suivante:
1: Importer jquery-ui-dist
npm install jquery jquery-ui-dist
2: Ajouter des scripts dans angular-cli.json
"scripts": [
"../node_modules/jquery/dist/jquery.min.js",
"../node_modules/jquery-ui-dist/jquery-ui.js"
],
SAINT FUME! Celui-ci était très gênant, mais je l'ai compris après des jours d'essais.
Donc, il y a beaucoup de réponses partielles, mais cela devrait être complet. Vous ne pouvez pas, d'après ce que j'ai vu, inclure jquery-ui dans votre cli-angulaire et l'index. Les inclusions de plugins seront écrasées et jQuery comme un fichier global sera indéfini . Je ne pouvais pas le faire fonctionner en utilisant seulement le paramètre angular-cli.json, mais je l’ai obtenu par seulement en utilisant inclusion d'index.
Voici ce qu'il faut faire pour utiliser uniquement l'inclusion de script d'index pour jquery/jquery-ui.
1: désinstallez jquery et jquery-ui et supprimez-le du package.json
npm uninstall --save jquery jquery-ui
2: supprime le dossier node_modules
3: Supprimez les références à jquery ou jquery-ui dans votre fichier angular-cli.json
4: Recréez les dossiers node_modules (vérifiez bien que jquery-ui n'est pas là, mais cela n'a pas vraiment d'importance tant que angular-cli.json ne l'a pas inclus.
npm install
5: incluez jquery, puis jquery-ui dans votre fichier d'index. J'ai utilisé 2.2.4, parce que je ne fais pas encore confiance à 3.
<script src="https://code.jquery.com/jquery-2.2.4.js" integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
6: Dans quel composant que vous souhaitiez utiliser le plugin jquery ou jquery inject $
declare var $: any;
$('draggable').draggable(); // WORKS!
s'il vous plaît importer jQuery UI à index.html comme ceci
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
Et decare $ dans votre composant comme ça
déclarer var $: any;