Angulaire 2 - ne Peut pas résoudre tous les paramètres pour le composant: (?)
J'ai commencé un Angular2 app et j'ai un problème depuis des jours !
Can't resolve all parameters for HomeComponent: (?).(…)
Mais mon problème n'est pas un fournisseur particulier : Everyting que j'essaie d'injecter dans mon HomeComponent constructeur de retour d'erreur. Aucune similitude des questions sur les erreurs résolu ma situation, et maintenant que j'ai passé autant de temps à chercher ce que je ne peux pas le trouver.
App.moodule.ts :
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule } from '@angular/router';
import { SimpleNotificationsModule } from 'angular2-notifications';
//Controllers
import { AppComponent } from './app.component';
import { HomeComponent } from './components/home.component';
//Service
import { AuthService } from './services/auth.service';
//Guards
import { AuthGuard } from './guards/auth.guard';
@NgModule({
imports: [
BrowserModule,
RouterModule.forRoot([
{
path: '',
component: HomeComponent,
canActivate: [AuthGuard]
}
]),
SimpleNotificationsModule
],
declarations: [
AppComponent,
HomeComponent
],
providers: [
AuthGuard,
AuthService,
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Mon HomeComponent :
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { NotificationsService } from 'angular2-notifications';
import { AuthService } from '../services/auth.service';
@Component({
selector: 'home',
templateUrl: '/templates/home.html'
})
export class HomeComponent implements OnInit
{
public test: boolean = false;
constructor(
private _authService: AuthService
) {}
ngOnInit()
{
this.test = true;
}
}
La AuthService que j'essaie d'importer est vide, et comme je l'ai dit tous les fournisseurs que j'injecte dans HomeComponent retour d'erreur. Chaque argument du constructeur créer un nouveau point d'interrogation dans l'erreur. Laissez-moi savoir si vous avez besoin de plus de code, mais je ne pense pas que le reste (modèles, systemjs.config.js...) le problème est
- Je soupçonne qu'il ya quelque chose de mal avec les importations ou d'un projet de config, pas avec le code.
- Grâce à cela, mais que pourrait-il être ? Voulez-vous un fichier en particulier ? Ps : Quand je ne mets pas tout argument au constructeur, il fonctionne bien.
- Désolé, aucune idée. Je ne suis pas en utilisant TS moi-même et ne savent pas à propos de la configuration du projet.
- est-ce pointage de fichier correct?
import { AuthService } from '../services/auth.service';
- Oui, mon contrôleur de dir en ce qui HomeController est, est dans le même dossier que les "services" dir.
- Comment
HomeComponent
trait aux "AppComponent'? - Eh bien, si je vous comprends bien, avec le routeur que vous pouvez voir dans app.module, et AppComponent a un routeur-prise balise dans son modèle.
- ce que résolu pour moi: voir forwardref réponse ici: stackoverflow.com/questions/37997824/...
- Il semble être lié : stackoverflow.com/questions/37997824/...
Vous devez vous connecter pour publier un commentaire.
Assurez-vous d'avoir
dans votre
tsconfig.js
. Vous ne devez pas ajouter@Inject()
à vos paramètres de fonction, si c'est activé.Importer ce
Et de changer votre constructeur de
vous devriez @Inject tout service dans le constructeur avant de l'utiliser.
et votre service doit être injectable
@Injectable
. L'ajout de@Injectable
fixe pour moi.Mon problème a fini par être rien. J'ai simplement redémarré le webpack watcher et puis tout s'était bien passé. Pour référence, je suis en utilisant l'angle de la CLI.
Le problème soulevé cette erreur pour moi était complètement différent. J'ai eu une catégorie de l'enregistrement dans le composant que j'avais utilisé à tort dans le service, et par conséquent, le service a une dépendance sur le composant et n'a pas pu être créé dans le temps pour qu'il puisse être injecté dans le composant.
TL;DR: Vérifiez les importations sur le service qui ne peut pas être injecté.