una técnica tecnica subrayar subrayado recomendaciones que para metodo informacion estudio estructura estrategias eficientemente como javascript angularjs underscore.js

javascript - técnica - Use subrayado dentro de los controladores angulares



recomendaciones para el subrayado (6)

¿Cómo uso la biblioteca de guiones bajos dentro de los controladores angulares?

En esta publicación: AngularJS limitTo por los últimos 2 registros alguien sugirió asignar una variable _ al rootScope para que la biblioteca esté disponible para todos los ámbitos dentro de la aplicación.

Pero no tengo claro dónde hacerlo. Quiero decir, ¿debería ir en la declaración del módulo de la aplicación? es decir:

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

Pero entonces, ¿dónde cargo la lib de subrayado? Acabo de tener en mi página de índice la directiva ng-app y la referencia de guiones tanto para ang-js como para guiones de subrayado?

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> ...

¿Cómo logro esto?


Cuando incluye Underscore, se une al objeto window y, por lo tanto, está disponible globalmente.

Entonces puede usarlo desde el código angular tal como está.

También puede envolverlo en un servicio o una fábrica, si desea que se lo inyecte:

var underscore = angular.module(''underscore'', []); underscore.factory(''_'', [''$window'', function($window) { return $window._; // assumes underscore has already been loaded on the page }]);

Y luego puede solicitar el _ en el módulo de su aplicación:

// Declare it as a dependency of your module var app = angular.module(''app'', [''underscore'']); // And then inject it where you need it app.controller(''Ctrl'', function($scope, _) { // do stuff });


He implementado la sugerencia de @satchmorun aquí: https://github.com/andresesfm/angular-underscore-module

Para usarlo:

  1. Asegúrate de haber incluido underscore.js en tu proyecto

    <script src="bower_components/underscore/underscore.js">

  2. Consíguelo:

    bower install angular-underscore-module

  3. Añada angular-underscore-module.js a su archivo principal (index.html)

    <script src="bower_components/angular-underscore-module/angular-underscore-module.js"></script>

  4. Agregue el módulo como una dependencia en la definición de su aplicación

    var myapp = angular.module(''MyApp'', [''underscore''])

  5. Para usar, agregue como una dependencia inyectada a su Controlador / Servicio y está listo para usar

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


Si no te importa usar lodash, prueba https://github.com/rockabox/ng-lodash lo completa completamente, por lo que es la única dependencia y no necesitas cargar ningún otro archivo de script como lodash.

Lodash está completamente fuera del alcance de la ventana y no "espera" que se haya cargado antes de su módulo.