Я новичок в 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) {}
}