Je suis nouveau sur Angulaire 2 et Tapuscrits et je suis en train de suivre les meilleures pratiques.
Au lieu d'utiliser un simple JavaScript modèle ({ }), je suis d'essayer de créer un fichier d'enregistrement de la classe.
Cependant, Angulaire 2 ne semble pas comme elle.
Mon code est:
import { Component, Input } from "@angular/core";
@Component({
selector: "testWidget",
template: "<div>This is a test and {{model.param1}} is my param.</div>"
})
export class testWidget {
constructor(private model: Model) {}
}
class Model {
param1: string;
}
et je l'utilise comme:
import { testWidget} from "lib/testWidget";
@Component({
selector: "myComponent",
template: "<testWidget></testWidget>",
directives: [testWidget]
})
J'obtiens une erreur Angulaire:
EXCEPTION: ne Peut pas résoudre tous les paramètres pour testWidget: (?).
Alors j'ai pensé, le Modèle n'est pas encore définie... je vais le déplacer vers le haut!
Sauf que maintenant j'ai accès à l'exception:
EXCEPTION d'ORIGINE: Pas de fournisseur de Modèle!
Comment puis-je y arriver??
Edit: Merci à tous pour la réponse. Il m'a conduit dans le droit chemin.
Afin d'injecter de la ce dans le constructeur, j'ai besoin de l'ajouter les fournisseurs sur le composant.
Cela semble fonctionner:
import { Component, Input } from "@angular/core";
class Model {
param1: string;
}
@Component({
selector: "testWidget",
template: "<div>This is a test and {{model.param1}} is my param.</div>",
providers: [Model]
})
export class testWidget {
constructor(private model: Model) {}
}