Ich habe eine Basis-App in Angular 2 erstellt, bin jedoch auf ein seltsames Problem gestoßen, bei dem ich keinen Dienst in eine meiner Komponenten einfügen kann. Es fügt sich jedoch gut in eine der drei anderen Komponenten ein, die ich erstellt habe.
Für den Anfang ist dies der Service:
import { Injectable } from '@angular/core';
@Injectable()
export class MobileService {
screenWidth: number;
screenHeight: number;
constructor() {
this.screenWidth = window.outerWidth;
this.screenHeight = window.outerHeight;
window.addEventListener("resize", this.onWindowResize.bind(this) )
}
onWindowResize(ev: Event) {
var win = (ev.currentTarget as Window);
this.screenWidth = win.outerWidth;
this.screenHeight = win.outerHeight;
}
}
Und die Komponente, mit der es nicht arbeiten will:
import { Component, } from '@angular/core';
import { NgClass } from '@angular/common';
import { ROUTER_DIRECTIVES } from '@angular/router';
import {MobileService} from '../';
@Component({
moduleId: module.id,
selector: 'pm-header',
templateUrl: 'header.component.html',
styleUrls: ['header.component.css'],
directives: [ROUTER_DIRECTIVES, NgClass],
})
export class HeaderComponent {
mobileNav: boolean = false;
constructor(public ms: MobileService) {
console.log(ms);
}
}
Der Fehler, den ich in der Browserkonsole erhalte, ist folgender:
AUSNAHME: Es können nicht alle Parameter für HeaderComponent aufgelöst werden: (?).
Ich habe den Dienst in der Bootstrap-Funktion, also hat es einen Anbieter. Und ich scheine in der Lage zu sein, es ohne Probleme in den Konstruktor einer meiner anderen Komponenten zu injizieren.
'../'
einindex.ts
(Fass)? Können Sie versuchen, es aus der Datei zu importieren, in der es stattdessen direkt deklariert ist?