Ich mache eine Wache in etwa so:Erste Fehler Injektion Service in Wache
// MyGuard.ts
import { Injectable, Component } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';
import { MyService } from './services/MyService';
@Component({
providers: [MyService]
})
@Injectable()
export class MyGuard implements CanActivate {
constructor(public s : MyService) {}
canActivate(next: ActivatedRouteSnapshot, prev: RouterStateSnapshot) {
this.s.doSomething();
return true;
}
}
Der Service ist hier:
// MyService.ts
import { Injectable } from '@angular/core';
import * as _ from 'lodash';
@Injectable()
export class MyService {
constructor() {
}
public doSomething() {
return this;
}
}
Wenn ich die Seite lade ich diesen Fehler:
Error: Uncaught (in promise): No provider for MyService! (MyGuard -> MyService)
Wenn ich die Zeile im Konstruktor von MyGuard entfernen, wo ich den Dienst
deklariere...
export class MyGuard implements CanActivate {
constructor() {} // <--- here
...
Ich kann die Seite ohne Fehler laden. Was mache ich falsch?