125 votes

Utilisez le trait de soulignement à l’intérieur des contrôleurs

Comment puis-je utiliser le trait de soulignement de la bibliothèque à l'intérieur de angularjs contrôleurs?

Sur ce post: AngularJS limitTo par 2 derniers enregistrements quelqu'un a suggéré d'attribuer un _ à la variable rootScope afin que la bibliothèque sera disponible pour tous les étendues au sein de l'application.

Mais je ne vois pas où le faire. Je veux dire, faut-il aller sur l'app module de déclaration? j'.e:

var myapp = angular.module('offersApp', [])
            .config(['$rootScope', function($rootScope) { }

Mais alors, où puis-je charger le trait de soulignement lib? Je viens de l'avoir sur ma page d'index de la ng-application de la directive et de script de référence à la fois à l'angulaires-js et le trait de soulignement libs?

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 puis-je y parvenir?

230voto

satchmorun Points 7504

Lorsque vous incluez le trait de soulignement, il s’attache à la `` objet et est donc disponible dans le monde.

Donc vous pouvez l’utiliser à partir de code angulaire comme-est.

Vous pouvez aussi envelopper dans un service ou une usine, si vous souhaitez qu’il soit injecté :

Et puis, vous pouvez demander pour le `` dans le module de votre application :

32voto

unify Points 917

J'ai mis en œuvre @satchmorun la suggestion ici: https://github.com/andresesfm/angular-underscore-module

Pour l'utiliser:

  1. Assurez-vous que vous avez inclus underscore.js dans votre projet

    <script src="bower_components/underscore/underscore.js">
    
  2. Obtenir:

    bower install angular-underscore-module
    
  3. Ajouter angular-underscore-module.js à votre fichier principal (index.html)

    <script src="bower_components/angular-underscore-module/angular-underscore-module.js"></script>
    
  4. Ajouter le module comme une dépendance dans votre Application définition

    var myapp = angular.module('MyApp', ['underscore'])
    
  5. Pour l'utiliser, ajouter de l'injection de dépendance à votre Contrôleur/Service et il est prêt à l'emploi

    angular.module('MyApp').controller('MyCtrl', function ($scope, _) {
    ...
    //Use underscore
    _.each(...);
    ...
    

31voto

wires Points 907

J’utilise ceci :

Voir https://github.com/angular/angular.js/wiki/Understanding-Dependency-Injection à mi-chemin pour plus d’informations sur `` .

3voto

Paul Sheldrake Points 1571

Vous pouvez aussi prendre un coup d’oeil à ce module pour angulaire

https://github.com/floydsoft/Angular-underscore

1voto

Nick White Points 462

Si vous ne me dérange pas à l’aide de lodash essayer https://github.com/rockabox/ng-lodash il enveloppe complètement lodash donc c’est 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 aucun « espoir » qu’il est été chargé avant votre module.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X