Tôi đã xây dựng một ứng dụng cơ bản trong Angular 2, nhưng tôi đã gặp phải một vấn đề kỳ lạ khi tôi không thể tiêm dịch vụ vào một trong các thành phần của mình. Tuy nhiên, nó tiêm tốt vào bất kỳ thành phần nào trong ba thành phần khác mà tôi đã tạo.
Đối với người mới bắt đầu, đây là dịch vụ:
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;
}
}
Và thành phần mà nó từ chối làm việc với:
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ỗi tôi gặp phải trong bảng điều khiển trình duyệt là:
NGOẠI TRỪ: Không thể giải quyết tất cả các tham số cho HeaderComponent: (?).
Tôi có dịch vụ trong chức năng bootstrap để nó có một nhà cung cấp. Và tôi dường như có thể đưa nó vào hàm tạo của bất kỳ thành phần nào khác mà không gặp vấn đề gì.
'../'
mộtindex.ts
(Thùng)? Bạn có thể thử nhập nó từ tệp nơi nó được khai báo trực tiếp không?