2015-07-09 12 views
6

È consentito allegare la variabile underscore.js alla variabile angolare? quindi posso chiamare underscore come: angular._? Dal momento che il carattere di sottolineatura è meno probabile essere deriso durante i test e non possiamo dichiarare variabili globali?Collegamento di underscore o lodash a angolare

se sì, quale parte della mia applicazione angular.js dovrei aggiungere?

+0

just 'angular._ = _;' – dfsq

+1

Sì, è facile impostarlo, ma la mia domanda è: ok? :) –

+0

Non è 'angular' una variabile globale? Non puoi trattare '_' lo stesso? –

risposta

6

Penso che sarebbe meglio non collegare il trattino basso all'angolare ma usarlo direttamente.

0

Il modo migliore che ho visto per farlo è la dipendenza da iniezione.

check out questo link per ng-sottolineare link

o

questo link angolare sottolineano link

11

preferisco creare un servizio involucro in un suo modulo iniettabili come ad esempio:

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

Come indicato, dovresti includere underscore.js prima di angolare nel tuo html come faresti normalmente.

Questo approccio consente di rendere il carattere di sottolineatura accessibile in un ambiente di test.

0

Se si usano i moduli ES6 si può semplicemente importare, se si utilizza l'approccio Iife è possibile registrare come un costante e poi iniettarlo

angular.module("app").constant("_", _); 

Eppure mi sento di raccomandare un'architettura ES6. Puoi dare un'occhiata a this

0

Quale suite di test userai?

Se usi karma, puoi aggiungere qualsiasi libreria di terze parti nella configurazione karma sotto l'opzione file. Questi file saranno disponibili nel browser e accessibili per i test. Non è necessario avvolgere la lib in un servizio angolare o collegarlo ad angolare.

0

Se whant utilizzare sottolineatura si può semplicemente aggiungere al tuo ambito

fare quanto segue in voi controller

$scope._ = _; 

ora si utilizza di sottolineatura caratteristiche dentro di te template HTML come

<div ng-repeat="value in _.filter(list, ...)"></div> 
Problemi correlati