ฉันได้สร้างแอพพื้นฐานใน Angular 2 แต่ฉันพบปัญหาแปลก ๆ ที่ฉันไม่สามารถฉีดบริการเข้าไปในหนึ่งในองค์ประกอบของฉัน อย่างไรก็ตามมันสามารถแทรกเข้าไปในองค์ประกอบอื่น ๆ สามอย่างที่ฉันสร้างขึ้นได้
สำหรับผู้เริ่มต้นนี่คือบริการ:
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;
}
}
และส่วนประกอบที่ปฏิเสธที่จะทำงานกับ:
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);
}
}
ข้อผิดพลาดที่ฉันได้รับในคอนโซลของเบราว์เซอร์คือ:
ข้อยกเว้น: ไม่สามารถแก้ไขพารามิเตอร์ทั้งหมดสำหรับ HeaderComponent: (?)
ฉันมีบริการในฟังก์ชั่น bootstrap ดังนั้นจึงมีผู้ให้บริการ และดูเหมือนว่าฉันจะสามารถฉีดลงในคอนสตรัคเตอร์ของส่วนประกอบอื่น ๆ ของฉันได้โดยไม่มีปัญหา
'../'
index.ts