我正在使用Angular类型脚本。
我在类型脚本中有模型类
</div>
使用类型脚本的我的Controller代码就像这样
module app.form {
export class Patient{
constructor(
public firstName: string,
public lastName: string,
public gender: string,
public birthDate: Date,
public currentMedications: string,
public notes: string,
public isMedicare: boolean,
public medicareName: string,
public medications: string[],
public ethnicity: string[],
public billingInfo: BillingInformation,
public specimenInfo: SpecimenInformation,
public assayRequested: AssayRequested,
public authorizationDetail: AuthorizationDetail
) {
}
}
}
我的app文件看起来像这样。
module app.form {
export class MainController {
constructor(public patient: Patient) {
}
}
}
我按此顺序在html文件中注册所有脚本
module app.form {
angular
.module("formApp", [
"ngMaterial",
"ngMdIcons",
"ngMessages"
])
.controller("MainController", MainController);
}
当我运行我的应用程序时,我看到了这个错误
我做错了什么?
答案 0 :(得分:1)
要解决错误,必须在使用typescript
时在控制器中使用静态$ injectstatic $inject = [];
答案 1 :(得分:0)
通常,您不会注入数据,而是从服务中检索数据。数据我的意思是你的主控制器中的Patient
。正如@toskv在注释中所提到的,你的构造函数不是无参数的,这意味着angular会期望你可以根据注入args字符串数组中的参数OR名称的名称将参数注入其中。你没有任何东西可以匹配变量名患者注射。
像这样更改您的代码。如果您想要检索特定患者,请创建一个服务或工厂,然后将其注入您的控制器并使用角度注册该服务/工厂。
module app.form {
export class MainController {
public patient: Patient; // make it a field
constructor() {
this.patient = new Patient(/*parameters here if any*/); //new instance
}
}
}