Comment utiliser la bibliothèque de soulignement dans les contrôleurs angularjs?
Sur cet article: AngularJS limitTo par les 2 derniers enregistrements, quelqu'un a suggéré d'assigner une variable _ au rootScope afin que la bibliothèque soit disponible pour toutes les étendues de l'application.
Mais je ne sais pas où le faire. Je veux dire, devrait-il aller sur la déclaration du module d'application? c'est à dire:
var myapp = angular.module('offersApp', [])
.config(['$rootScope', function($rootScope) { }
Mais alors où dois-je charger la lib de soulignement? J'ai juste sur ma page d'index la directive ng-app et la référence de script aux libs angular-js et underscore?
index.html
:
<head>
</head>
<body ng-app="offersApp">
...
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="scripts/vendor/angular.js"></script>
<script src="scripts/vendor/underscore.js"></script>
...
Comment y parvenir?
Réponses:
Lorsque vous incluez le trait de soulignement, il s'attache à l'
window
objet et est donc disponible globalement.Vous pouvez donc l'utiliser à partir du code angulaire tel quel.
Vous pouvez également l'envelopper dans un service ou une usine, si vous souhaitez qu'il soit injecté:
Et puis vous pouvez demander le
_
dans le module de votre application:la source
J'ai implémenté la suggestion de @ satchmorun ici: https://github.com/andresesfm/angular-underscore-module
Pour l'utiliser:
Assurez-vous d'avoir inclus underscore.js dans votre projet
Tu piges:
Ajoutez angular-underscore-module.js à votre fichier principal (index.html)
Ajoutez le module en tant que dépendance dans la définition de votre application
Pour l'utiliser, ajoutez en tant que dépendance injectée à votre contrôleur / service et il est prêt à être utilisé
la source
Uncaught ReferenceError: _ is not defined
J'utilise ceci:
Voir https://github.com/angular/angular.js/wiki/Understanding-Dependency-Injection à mi-chemin pour plus d'informations sur
run
.la source
<p>{{ _.capitalize('lalala') }}</p>
?Vous pouvez également jeter un oeil à ce module pour angulaire
https://github.com/floydsoft/angular-underscore
la source
Si cela ne vous dérange pas d'utiliser lodash, essayez https://github.com/rockabox/ng-lodash, il enveloppe complètement lodash, c'est donc la seule dépendance et vous n'avez pas besoin de charger d'autres fichiers de script tels que lodash.
Lodash est complètement hors de la portée de la fenêtre et ne «espère» pas qu'il a été chargé avant votre module.
la source
vous pouvez utiliser ce module -> https://github.com/jiahut/ng.lodash
c'est pour
lodash
ainsiunderscore
la source