Inner Error: Message: controllerFactory.createForCurrentScope is not a function
Inner Error: Message: controllerFactory.createForCurrentScope is not a function
我在 aurelia 视图模型中收到上述错误
Inner Error: Message: controllerFactory.createForCurrentScope is not a
function
这是代码,
export class UpdateClient {
public httpClient: HttpClient;
public router: Router;
public clientHelper: ClientHelper;
public validator: Validator;
public canSave: boolean;
public controller: ValidationController;
public client: Client ;
constructor(httpClient: HttpClient, router: Router, clientValidator: ClientValidator, clientHelper: ClientHelper, controllerFactory: ValidationControllerFactory, validator: Validator) {
this.httpClient = httpClient;
this.clientHelper = clientHelper;
this.router = router;
this.client = new Client
this.controller = controllerFactory.createForCurrentScope(validator);
clientValidator.validate(this.client, clientHelper);
}
您的 UpdateClient
class 需要 @autoinject()
或任何其他装饰器才能正确发出类型元数据。
ValidationControllerFactory
在 DI 中注册为模块文件中的解析器,因此只需导入它(你有,否则你会得到类型错误)应该给你正确的东西。
您可能需要仔细检查 experimentalDecorators
和 emitDecoratorMetadata
在 tsconfig.json
中是否设置为 true。
还要确保您在 main.ts
中注册了验证插件,如下所示:
aurelia.use.plugin(PLATFORM.moduleName('aurelia-validation'))
我在 aurelia 视图模型中收到上述错误
Inner Error: Message: controllerFactory.createForCurrentScope is not a function
这是代码,
export class UpdateClient {
public httpClient: HttpClient;
public router: Router;
public clientHelper: ClientHelper;
public validator: Validator;
public canSave: boolean;
public controller: ValidationController;
public client: Client ;
constructor(httpClient: HttpClient, router: Router, clientValidator: ClientValidator, clientHelper: ClientHelper, controllerFactory: ValidationControllerFactory, validator: Validator) {
this.httpClient = httpClient;
this.clientHelper = clientHelper;
this.router = router;
this.client = new Client
this.controller = controllerFactory.createForCurrentScope(validator);
clientValidator.validate(this.client, clientHelper);
}
您的 UpdateClient
class 需要 @autoinject()
或任何其他装饰器才能正确发出类型元数据。
ValidationControllerFactory
在 DI 中注册为模块文件中的解析器,因此只需导入它(你有,否则你会得到类型错误)应该给你正确的东西。
您可能需要仔细检查 experimentalDecorators
和 emitDecoratorMetadata
在 tsconfig.json
中是否设置为 true。
还要确保您在 main.ts
中注册了验证插件,如下所示:
aurelia.use.plugin(PLATFORM.moduleName('aurelia-validation'))