मैंने एंगुलर 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 के लिए सभी मापदंडों को हल नहीं कर सकता: (?)।
मेरे पास बूटस्ट्रैप फ़ंक्शन में सेवा है इसलिए इसके पास एक प्रदाता है। और मुझे यह समस्या के बिना मेरे किसी भी अन्य घटक के निर्माता में इंजेक्ट करने में सक्षम लगता है।
'../'
एकindex.ts
(बैरल)? क्या आप इसे उस फ़ाइल से आयात करने का प्रयास कर सकते हैं, जहाँ इसे इसके बजाय सीधे घोषित किया गया है?