我是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的所有参数:(?)。
所以我想,尚未定义Model ...我将其移到顶部!
除了现在,我得到了例外:
原来的例外:没有提供模型的人!
我该怎么做?
编辑:感谢所有的答案。它把我引向正确的道路。
为了将其注入到构造函数中,我需要将其添加到组件上的提供程序中。
这似乎起作用:
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) {}
}