¿Cómo uso la biblioteca de subrayado dentro de los controladores angularjs?
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 lib de subrayado? ¿Acabo de tener en mi página de índice la directiva ng-app y la referencia del script para las bibliotecas angular-js y 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?
Respuestas:
Cuando incluye Underscore, se adjunta al
window
objeto y, por lo tanto, está disponible globalmente.Para que pueda usarlo desde el código angular tal como está.
También puede envolverlo en un servicio o una fábrica, si desea que se inyecte:
Y luego puede solicitar el
_
en el módulo de su aplicación:fuente
He implementado la sugerencia de @ satchmorun aquí: https://github.com/andresesfm/angular-underscore-module
Para usarlo:
Asegúrese de haber incluido underscore.js en su proyecto
Consíguelo:
Agregue angular-underscore-module.js a su archivo principal (index.html)
Agregue el módulo como una dependencia en la definición de su aplicación
Para usar, agregue como una dependencia inyectada a su Controlador / Servicio y está listo para usar
fuente
Uncaught ReferenceError: _ is not defined
Yo uso esto:
Consulte https://github.com/angular/angular.js/wiki/Understanding-Dependency-Injection a mitad de camino para obtener más información
run
.fuente
<p>{{ _.capitalize('lalala') }}</p>
?También puede echar un vistazo a este módulo para angular
https://github.com/floydsoft/angular-underscore
fuente
Si no te importa usar lodash, prueba https://github.com/rockabox/ng-lodash, lo envuelve completamente, por lo que es la única dependencia y no necesita 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.
fuente
puedes usar este módulo -> https://github.com/jiahut/ng.lodash
esto es por
lodash
lo que haceunderscore
fuente