Wie deklariere ich eine Modellklasse in meiner Angular 2-Komponente mit TypeScript?

Ich bin neu Eckig 2 und Typoskript und ich versuche zu Folgen best practices.

Anstelle der Verwendung einer einfachen JavaScript-Modell ({ }), ich bin versucht zu erstellen Typoskript Klasse.

Jedoch, Winkel 2 nicht scheinen es zu mögen.

Mein code ist:

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;
}

und ich verwende es als:

import { testWidget} from "lib/testWidget";

@Component({
    selector: "myComponent",
    template: "<testWidget></testWidget>",
    directives: [testWidget]
})

Ich bin immer ein Fehler von Winkel:

AUSNAHME: nicht lösen Können alle Parameter für testWidget: (?).

Also dachte ich, das Modell noch nicht definiert ist... ich werde es verschieben nach oben!!!

Außer jetzt bekomme ich die exception:

ORIGINAL-EXCEPTION: Kein provider für das Modell!

Wie kann ich dies erreichen??

Edit: vielen Dank an alle für die Antwort. Er führte mich auf den richtigen Pfad.

Um zu injizieren, das in den Konstruktor, die ich brauche, um es der Anbieter auf die Komponente.

Diese scheint zu funktionieren:

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) {}
}

InformationsquelleAutor der Frage Scottie | 2016-07-15

Schreibe einen Kommentar