Betrachten Sie die folgende KlassenstrukturWie setze ich Provider für Annotationen, die im Konstruktor verwendet werden?
@Component({selector: 'myComp', template: '<div></div>'})
export class MyComp {
//Variables...
constructor(@Inject(ElementRef) private elementRef: ElementRef,
@Attribute('highlight') private highlight: string) { }
//Methods ...
nun in anderer Klasse oder in der Einheit Testblock beschreibt Ich brauche Anbieter zu setzen, diese Klasse zu injizieren.
In meiner Unit-Test Ich habe
beforeEachProviders(() => [MyComp, ElementRef ,Attribute ]);
die nicht korrekt ist, muss ich wissen, was die richtige Art und Weise ist ElementRef und @Attribute zu schaffen, es funktioniert.
Fehler ich war mit Blick ist
Error: No provider for @Attribute(highlight)! (MyComp-> @Attribute(highlight))
Error: DI Exception
Edit: Attribut 'Highlight' ist ein boolean-Attribut.
ElementRef ist in Ordnung, @Attribute ist das Problem. Ich habe diese Problemumgehung für diesen Link versucht. immer noch der gleiche Fehler, dass kein Provider für @Attribute (highlight) –
Ich weiß, das ist, warum ich den Link auf die andere Frage –
jede andere Problemumgehung, um Komponente Instanz von myComp erstellen und Zugriff auf die Methode? –