मैं अपने Ionic2.beta11 ऐप को नए Ionic2.rc0 रिलीज पर पोर्ट करने का प्रयास कर रहा हूं। ज्यादातर चीजें बहुत सीधे आगे थीं, लेकिन मुझे एओटी कंपाइलर के साथ समस्या है।Ionic2/Angular2 में प्रदाता कन्स्ट्रक्टर को तर्क कैसे दे सकता हूं?
@Injectable()
export class AuthService {
constructor(@Inject(Http) http: Http) {
this.http = http;
}
...
}
मैं src/app/app.module.ts
फ़ाइल में अपने ऐप्स में यह इंजेक्शन लगाने कर रहा हूँ:
मैं एक AuthService है
@NgModule({
declarations: [
MyApp,
...
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
...
],
providers: [
AuthService
]
})
सब कुछ ठीक काम करता है जब आयनिक चल सेवा करते हैं, लेकिन जब मैं बनाने की कोशिश मुझे निम्न त्रुटि मिलती है:
ngc error: Error: Error at .../.tmp/app/app.module.ngfactory.ts:397:78: Supplied parameters do not match any signature of call target.
लाइन्स 396 - 39 9:
get _AuthService_74():import44.AuthService {
if ((this.__AuthService_74 == (null as any))) { (this.__AuthService_74 = new import44.AuthService()); }
return this.__AuthService_74;
}
समस्या यह है कि new import44.AuthService()
प्रकार http के तर्क की अपेक्षा करता है।
दिलचस्प बात यह है कि जब मैं मैन्युअल रूप से constructor(http: Http)
को constructor()
परिभाषा फ़ाइल में बदलता हूं तो सब कुछ ठीक काम करता है।
मैं उन सभी स्टैक ओवरफ्लो उत्तरों के माध्यम से पढ़ता हूं जो मुझे मिल सकता था, लेकिन समाधानों में से कोई भी मेरी समस्या का हल नहीं हुआ।
क्या मुझे AuthService में कन्स्ट्रक्टर को बदलने की ज़रूरत है या जिस तरह से मैं इसे अपने ऐप में इंजेक्ट करता हूं? आपके सहयोग के लिए धन्यवाद।
एक अस्थायी समाधान मैं तर्क वैकल्पिक बना दिया के रूप में और अब यह काम करता है। लेकिन मैं अभी भी एक उचित समाधान की तलाश में हूं। –