Como uso a biblioteca de sublinhado nos controladores angularjs?
Nesta postagem: AngularJS limitTo nos últimos 2 registros, alguém sugeriu atribuir uma variável _ ao rootScope para que a biblioteca fique disponível para todos os escopos no aplicativo.
Mas não estou claro onde fazê-lo. Quero dizer, deve ir na declaração do módulo de aplicativo? ou seja:
var myapp = angular.module('offersApp', [])
.config(['$rootScope', function($rootScope) { }
Mas então, onde eu carrego a sublinhada lib? Eu só tenho na minha página de índice a diretiva ng-app e a referência de script para as bibliotecas angular-js e 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>
...
Como faço para conseguir isso?
Respostas:
Quando você inclui o Sublinhado, ele se anexa ao
window
objeto e, portanto, está disponível globalmente.Então você pode usá-lo no código Angular como está.
Você também pode envolvê-lo em um serviço ou fábrica, se desejar que ele seja injetado:
E então você pode solicitar o
_
módulo do seu aplicativo:fonte
Eu tenho implementado @ sugestão de satchmorun aqui: https://github.com/andresesfm/angular-underscore-module
Para usá-lo:
Verifique se você incluiu underscore.js no seu projeto
Pegue:
Adicione angular-underscore-module.js ao seu arquivo principal (index.html)
Adicione o módulo como uma dependência na sua definição de aplicativo
Para usar, adicione como dependência injetada ao seu Controlador / Serviço e ele estará pronto para uso
fonte
Uncaught ReferenceError: _ is not defined
Eu uso isso:
Consulte https://github.com/angular/angular.js/wiki/Understanding-Dependency-Injection sobre a meio caminho para obter mais informações sobre
run
.fonte
<p>{{ _.capitalize('lalala') }}</p>
?Você também pode dar uma olhada neste módulo para obter informações angulares.
https://github.com/floydsoft/angular-underscore
fonte
Se você não se importa em usar o lodash, experimente https://github.com/rockabox/ng-lodash, que envolve o lodash completamente, portanto é a única dependência e você não precisa carregar outros arquivos de script, como o lodash.
O Lodash está completamente fora do escopo da janela e não "espera" que ele tenha sido carregado antes do seu módulo.
fonte
você pode usar este módulo -> https://github.com/jiahut/ng.lodash
isto é para o
lodash
mesmo aconteceunderscore
fonte