Saya telah membangun aplikasi dasar di Angular 2, tetapi saya telah menemukan masalah aneh di mana saya tidak dapat menyuntikkan layanan ke salah satu komponen saya. Ini menyuntikkan dengan baik ke salah satu dari tiga komponen lain yang telah saya buat.
Sebagai permulaan, ini adalah layanan:
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;
}
}
Dan komponen yang menolak untuk bekerja dengannya:
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);
}
}
Kesalahan yang saya dapatkan di konsol browser adalah ini:
PENGECUALIAN: Tidak dapat menyelesaikan semua parameter untuk HeaderComponent: (?).
Saya memiliki layanan dalam fungsi bootstrap sehingga ia memiliki penyedia. Dan saya tampaknya dapat menyuntikkannya ke dalam konstruktor komponen saya yang lain tanpa masalah.
'../'
sebuahindex.ts
(Barrel)? Bisakah Anda mencoba mengimpornya dari file yang dideklarasikan langsung?