Как объявить класс модели в моем компоненте Angular 2, используя TypeScript?

Я новичок в Angular 2 и TypeScript, и я пытаюсь следовать лучшим практикам.

Вместо использования простой модели JavaScript ({}) я пытаюсь создать класс TypeScript.

Тем не менее, Angular 2, похоже, не нравится.

Мой код:

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

и я использую это как:

import { testWidget} from "lib/testWidget";

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

Я получаю сообщение об ошибке от Angular:

ИСКЛЮЧЕНИЕ: Не удается разрешить все параметры для testWidget: (?).

Поэтому я подумал, что модель еще не определена ... Я переместу ее наверх!

За исключением теперь я получаю исключение:

ОРИГИНАЛЬНОЕ ИСКЛЮЧЕНИЕ: для модели нет поставщика!

Как мне это сделать ??

Изменить: Спасибо всем за ответ. Это привело меня на правильный путь.

Чтобы добавить это в конструктор, мне нужно добавить его к поставщикам в компоненте.

Это похоже на работу:

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

Ответы на вопрос(6)

Ваш ответ на вопрос