我对 Angular 2和 TypeScript 还是个新手,我正在努力遵循最佳实践。
我不使用简单的 JavaScript 模型({}) ,而是尝试创建一个 TypeScript 类。
然而,角度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) {}
}