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 中注册为模块文件中的解析器,因此只需导入它(你有,否则你会得到类型错误)应该给你正确的东西。

您可能需要仔细检查 experimentalDecoratorsemitDecoratorMetadatatsconfig.json 中是否设置为 true。

还要确保您在 main.ts 中注册了验证插件,如下所示:

aurelia.use.plugin(PLATFORM.moduleName('aurelia-validation'))