J'ai créé une application de base dans Angular 2, mais j'ai rencontré un problème étrange où je ne peux pas injecter de service dans l'un de mes composants. Cependant, il injecte bien dans l'un des trois autres composants que j'ai créés.
Pour commencer, voici le 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;
}
}
Et le composant avec lequel il refuse de travailler:
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);
}
}
L'erreur que j'obtiens dans la console du navigateur est la suivante:
EXCEPTION: impossible de résoudre tous les paramètres de HeaderComponent: (?).
J'ai le service dans la fonction bootstrap donc il a un fournisseur. Et je semble pouvoir l'injecter dans le constructeur de n'importe lequel de mes autres composants sans problème.
'../'
unindex.ts
(baril)? Pouvez-vous essayer de l'importer à partir du fichier où il est déclaré directement à la place?