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