2016-07-01 30 views
23

Ho appena aggiornato da Angular2 RC1 a RC4.La funzione provide() di Angular2 è deprecata in RC4 e versioni successive, cosa invece dovrebbe essere usato?

Prima ho usato:

provide(LocationStrategy, {useClass: HashLocationStrategy}) 

Tuttavia, dopo aver aggiornato a RC4, il fornire spettacoli come deprecato.

Non ho trovato alcuna documentazione su questo.

Qualcuno ha un'idea di cosa è successo?

+0

potresti mostrare dove è l'importazione che sta portando nella fornitura? –

+14

Utilizza la mappa letterale '{provide: LocationStrategy, useClass: HashLocationStrategy}' – yurzui

+3

Grazie per la risposta! Come l'hai trovato? Grazie! – kdu

risposta

25

Come ricordato nei commenti di cui sopra, si dovrebbe ora basta usare un oggetto con provide e useClass proprietà, come nel seguente:

bootstrap(App, [ 
    CookieService, 
    AuthService, 
    WindowService, 
    COMMON_DIRECTIVES, 
    ROUTER_DIRECTIVES, 
    HTTP_PROVIDERS, 
    provideRouter(AppRoutes), 
    { provide: LocationStrategy, useClass: HashLocationStrategy } 
]); 

Questo esempio è dal mio Github project using Angular2, Bootstrap 4, OAuth2, and Webpack. L'ho aggiornato come sono state rilasciate le varie versioni alfa, beta e RC di Angular2.

+3

Come iniettare il servizio di simulazione in una prova? –

+0

sotto 'provider' usando' TestBed.configureTestingModule ({providers: [..]}) 'stesso modo come qui – Tim