¿Cómo declaro una clase de modelo en mi componente Angular 2 usando TypeScript?
Soy nuevo en Angular 2 y TypeScript y estoy tratando de seguir las mejores prácticas.
En lugar de utilizar un modelo simple de JavaScript ({}), intento crear una clase TypeScript.
Sin embargo, a Angular 2 no parece gustarle.
Mi código es:
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;
}
y lo estoy usando como:
import { testWidget} from "lib/testWidget";
@Component({
selector: "myComponent",
template: "<testWidget></testWidget>",
directives: [testWidget]
})
Recibo un error de Angular:
EXCEPCIÓN: No se pueden resolver todos los parámetros para testWidget: (?).
Entonces pensé, el modelo aún no está definido ... ¡Lo moveré a la cima!
Excepto que ahora tengo la excepción:
EXCEPCIÓN ORIGINAL: ¡No hay proveedor para el modelo!
¿Cómo logro esto?
Editar: Gracias a todos por la respuesta. Me llevó al camino correcto.
Para inyectar esto en el constructor, necesito agregarlo a los proveedores en el componente.
Esto parece funcionar:
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) {}
}