无需分叉即可自定义第三方指令的实现

问题描述 投票:0回答:1

在我们的 Angular 项目中,我们使用 @ngneat/error-tailor 来显示表单错误: 我们感兴趣的是在触摸控件时显示错误消息,这是此 github 问题中请求的功能。甚至有一个 PR 涉及此更改,但自 2024 年 5 月以来没有任何活动。

我们想知道:是否有可能在我们的项目中仅覆盖 ControlErrorDirective 的行为而不分叉整个库,以便我们在不久的将来可以选择退出此覆盖?如果是的话,怎么办?

angular angular-reactive-forms
1个回答
0
投票

只需将源代码(

lib
)复制到您的项目的单独文件夹中,您的应用程序就可以像下面一样使用此代码。

import { provideErrorTailorConfig } from '@ngneat/error-tailor';

const config = {
      errors: {
        useValue: {
          required: 'This field is required',
          minlength: ({ requiredLength, actualLength }) => 
                      `Expect ${requiredLength} but got ${actualLength}`,
          invalidAddress: error => `Address isn't valid`
        }
      }
    };

bootstrapApplication(AppComponent, {
  providers: [
    {
      provide: ErrorTailorConfigProvider,
      useValue: config,
    },
    {
      provide: FORM_ERRORS,
      ...config.errors,
    },
  ]
})
© www.soinside.com 2019 - 2024. All rights reserved.