web-dev-qa-db-fra.com

Angular2 EXCEPTION Aucun fournisseur pour String

J'ai une toute nouvelle application créée avec un ng-cli Avec ce code très simple ^^

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  constructor(private my: string) {}
} 

et j'ai dans la console

EXCEPTION: Aucun fournisseur pour String!

Je ne vois aucune erreur dans le code, alors Qu'est-ce qui ne va pas!

En ng-book je peux lire

export class Article { 
  title: string; 
  link: string; 
  votes: number;
  constructor(title: string, link: string, votes?: number) { 
    this.title = title;
    this.link = link;
    this.votes = votes || 0;
  }
}

Jeter un coup d'œil à

https://github.com/Microsoft/TypeScriptSamples/blob/master/greeter/greeter.ts

7
Whisher

Erreur dans le constructeur:

export class AppComponent {
  constructor(private my: string) {}
} 

private my: string ne doit pas être injecté dans le constructeur, mais à l'extérieur, supposons qu'il s'agit d'une variable que vous souhaitez utiliser dans votre composant.

export class AppComponent {
  private my: string;
  constructor() {
    this.my = 'Hello!'; // if you want to assign a value (in the constructor) to your string, do it here!
  }
} 

Je vous suggère de commencer avec le Tutorial depuis le début, vous apprendrez donc les bases de Angular :)

EDIT, la dernière partie que vous avez ajoutée est une classe, par exemple pour taper votre objet, et non un composant, pour un objet typé de la classe article. Il s’agit d’une syntaxe valide:

export class Article { 
  title: string; 
  link: string; 
  votes: number;
  constructor(title: string, link: string, votes?: number) { 
    this.title = title;
    this.link = link;
    this.votes = votes || 0;
  }
}

Ensuite, vous pouvez importer cette classe dans votre AppComponent et l’utiliser pour assigner un objet Article.

import { Component } from '@angular/core';
import { Article } from './your.path'

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

  article: Article = new Article('titleHere', 'linkHere', 3)

  constructor() {}
}
13
AJT_82

J'ai eu cette erreur et je peux le résoudre

juste besoin de relancer le processus de construction

en l'arrêtant avec ctrl + c

et ionic serve encore

ou commande angulaire

0