导出 Angular 反应形式的验证器



我正在尝试创建一个ValidatorFn,该将用于表示自定义响应式表单控件的几个组件中。我最初的想法是生成一个 TypeScript 类,在那里创建一个(或几个)公共静态函数,然后像这样使用它:myFGroup.setValidators(ReactiveValidators.myValidator).

问题是,尽管我在app.module中导入了这个ReactiveValidators类并将其添加到declarations: [],但我仍然收到最喜欢的错误:

错误 TS2307:找不到模块"src/app/验证器/反应验证器">

有人可以告诉我我做错了什么吗?另外,这种方法甚至是一种好方法吗?

ValidatorFun 只是一个函数,不需要在任何类中。您可以简单地创建一个带有导出的验证器函数的 ts 文件。

export const myValidator: ValidatorFn = /* ... */;
export const myOtherValidator: ValidatorFn = /* ... */;
export function myJustAnotherValidator(/* ... */) { /* ... */ }

您可以像导入它们一样import { myValidator, myOtherValidator } from '../mypath/reactive-validators';import * as ReactiveValidators from '../mypath/reactive-validators';

无需导入模块

根据他发现的问题@dzenesiz,问题在于导入语法。

正确的导入语句是导入。

{ maxInputLengthValidator } from '../../validators/reactive-validators'

请注意相对路径。而且,由于某种原因,VS Code 自动导入使用绝对路径,即错误消息中的路径。我修复了路径,现在它可以工作了

相关内容

  • 没有找到相关文章

最新更新