Как объявить класс модели в моем компоненте 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) {}
}