首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取“NullInjectorError:没有用于NgControl的提供程序!”使用自定义控件时

“NullInjectorError:没有用于NgControl的提供程序!”是一个常见的错误消息,通常出现在使用自定义控件时。该错误表示在Angular应用程序中找不到用于NgControl的提供程序。

NgControl是Angular中的一个抽象类,用于管理表单控件的状态和值。当我们在自定义控件中使用NgControl时,需要确保正确地提供NgControl的实例。

要解决这个错误,可以采取以下步骤:

  1. 确保在使用自定义控件的组件中正确导入NgControl类。例如,在组件的文件顶部添加以下导入语句:
代码语言:txt
复制
import { NgControl } from '@angular/forms';
  1. 在组件的构造函数中注入NgControl实例。例如,在组件的构造函数中添加以下代码:
代码语言:txt
复制
constructor(private ngControl: NgControl) { }
  1. 确保在使用自定义控件的模板中正确绑定NgControl。例如,可以使用ngModel指令将NgControl与表单控件绑定在一起:
代码语言:txt
复制
<input type="text" [(ngModel)]="value" [ngModelOptions]="{standalone: true}">

在上面的代码中,ngModel指令将NgControl与表单控件进行绑定,并使用ngModelOptions设置standalone选项为true,以确保NgControl不依赖于外部表单。

  1. 如果自定义控件是一个组件,确保在组件的providers数组中提供NgControl实例。例如,在组件的元数据中添加以下代码:
代码语言:txt
复制
@Component({
  ...
  providers: [{ provide: NgControl, useExisting: forwardRef(() => CustomControlComponent) }],
  ...
})

在上面的代码中,我们使用provide和useExisting选项将NgControl实例提供给自定义控件组件。

总结起来,解决“NullInjectorError:没有用于NgControl的提供程序!”错误的关键是正确导入NgControl类,注入NgControl实例,正确绑定NgControl,并在自定义控件组件的providers数组中提供NgControl实例。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 移动开发(移动推送、移动分析、移动测试等):https://cloud.tencent.com/product/mobile
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 元宇宙(Tencent XR):https://cloud.tencent.com/product/xr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AngularDart4.0 指南- 表单 顶

使用ngModel创建读取和写入输入控制值双向数据绑定。 跟踪状态变化和表单控件有效性。 使用跟踪控件状态特殊CSS类提供视觉反馈。 向用户显示验证错误并启用/禁用表单控件。...使用ngModel双向数据绑定语法将数据属性绑定到每个表单控件。 为每个表单输入控件添加一个ngControl指令。 添加自定义CSS来提供视觉反馈。 显示和隐藏验证错误消息。...p模板输入变量在每次迭代中是不同power; 您使用插值语法显示其名称。 与ngModel双向数据绑定 现在运行应用程序有点令人失望。 ? 你没有看到英雄数据,因为你还没有绑定到英雄。...用于验证和表单元素更改跟踪NgControl 指令。 输入控件(通过模板引用变量访问)valid 属性,用于检查控件有效性以及显示/隐藏错误消息。...NgForm.form有效性来设置提交按钮启用状态。 自定义CSS类为用户提供有关控制状态可视反馈。 最终项目文件夹结构应该如下所示: ?

17.5K30

Angular6自定义表单控件方式集成Editormd

:用来获取原生表单控件值更新通知Angular表单控件更新函数(即,设置当控件接收到 change 事件后,调用函数) registerOnTouched:用来获取通知用户正在交互函数(即,设置当控件接收到...(isDisabled: boolean):设置DISABLED状态执行方法。即,当控件状态变成 DISABLED 或从 DISABLED 状态变化成 ENABLE 状态,会调用该函数。...明确来说,那些原生表单控件都有其对应ControlValueAccessor,比如: - DefaultValueAccessor - 用于 text 和 textarea 类型输入控件 - SelectControlValueAccessor...- 用于 select 选择控件 - CheckboxControlValueAccessor - 用于 checkbox 复选控件 至于原生表单控件和Angular表单控件能够保持一致原理,可以看下...【荐】深入Angular自定义表单控件 Angular集成Editor.mdMarkdown编辑器,支持NgModel双向绑定

5.2K20
  • 当nz-checkbox-group多选框组遇上必选校验

    本篇是讲述是从遇到问题到最终解决问题全过程,对于想要直接获取答案小伙伴可直接跳至 再次尝试 一节。...再次尝试 到这曾一度想过放弃然后自己用原始方式写,再一想到原始方式还要自己考虑样式什么,作为一个有着css恐惧症Java程序猿我决然地选择了硬着头皮在啃会儿。...在刷了n+1遍ng-zorro-antd官方文档表单部分后,在“自定义异步校验”中看到这样一句话 : 当使用 响应式表单(Reactive Form) ...nzValidateStatus 会自动从 NgControl获取数据,也可以手动指定特定 NgControl组件将表单校>验函数校验过程和异步返回结果显示对应error | validating...于是有了如下终极解决方案: 问题.html中不用做修改。 问题.ts修改如下: //因为不想在提交方法_submitForm()再循环一遍获取多选结果,就只好在这先定义一个临时用于存储选择结果。

    4.4K20

    (转) 别再对 Angular 表单 ControlValueAccessor 感到迷惑

    input,textarea 进行交互,并且很有可能需要自定义一个表单控件作为 Angular 组件而不是使用原生表单控件,而通常自定义表单控件会封装一个使用纯 JS 写控件如 jQuery UI's...本文我将使用原生表单控件术语来区分 Angular 特定 formControl 和你在 html 使用表单控件,但你需要知道任何一个自定义表单控件都可以和 formControl 指令进行交互,而不是原生表单控件如...写法是如何把 input 控件每次更新值传给回调函数,L52 和 L89);使用 registerOnTouched 方法来注册用户和控件交互触发回调(译者注:你可能会参考 L95)。...组件封装器 由于 Angular 为所有默认原生控件提供控件值访问器,所以在封装第三方插件或组件,需要写一个新控件值访问器。...我们将使用上文提到 jQuery UI 库 slider 插件,来实现一个自定义表单控件吧。

    3.8K20

    【愚公系列】2023年11月 WPF控件专题 PrintDialog控件详解

    自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化用户界面元素。自定义控件可以根据需求提供更多功能和自定义化选项,以及更好用户体验。...一、PrintDialog控件详解PrintDialog控件是WPF中一个对话框,用于在打印文档显示打印设置参数供用户选择并确认。...它常用于以下场景:用户选择要打印文档或图像,可以使用PrintDialog控件来浏览可用打印机和打印选项。...在WPF应用程序中实现打印功能,可以使用PrintDialog控件来允许用户选择打印机和打印选项,例如打印纸张大小、打印份数、单面或双面打印等。...PrintDialog控件是WPF中实现打印操作重要组件,它可以为用户提供更好体验,并为开发人员提供更多自定义选项。

    57311

    【愚公系列】2023年10月 WPF控件专题 Groupbox控件详解

    WPF控件可以分为两类:原生控件自定义控件。原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见标准用户界面元素。...自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化用户界面元素。自定义控件可以根据需求提供更多功能和自定义化选项,以及更好用户体验。...GroupBox控件还可以使用不同样式和模板进行自定义,以满足不同设计和用户需求。可以使用样式和模板来改变GroupBox边框样式、背景颜色、字体等属性。...2.常用场景WPF中Groupbox控件用于以下场景:分组:当需要将某些相关控件进行分组,可以使用Groupbox控件,将它们放在一个框架中,给用户提供更好可视化效果。...信息:当需要在界面上显示一组相关信息,可以使用Groupbox控件将这些信息进行分组显示。布局:当需要对一组控件进行布局,可以使用Groupbox控件作为容器,对其中控件进行排列布局。

    1K00

    【愚公系列】2023年11月 WPF控件专题 SaveFileDialog控件详解

    WPF控件可以分为两类:原生控件自定义控件。原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见标准用户界面元素。...自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化用户界面元素。自定义控件可以根据需求提供更多功能和自定义化选项,以及更好用户体验。...如果用户点击保存按钮,则会返回true,然后可以使用FileName属性来获取用户选择文件名。最后,可以使用File.WriteAllText()方法来将数据写入文件中。...以下是SaveFileDialog一些常用属性:DefaultExt:默认文件扩展名,用于在文件名没有指定扩展名自动添加。Filter:保存文件过滤器,用于限制用户可以选择文件类型。...另外,SaveFileDialog控件也可以用于将应用程序生成数据保存到本地文件中,例如将报表导出为PDF格式并保存到本地文件。

    57312

    《101 Windows Phone 7 Apps》读书笔记-ALARM CLOCK

    当应用程序更新到一个新版本,它隔离空间中数据仍旧会被保存。当应用程序被卸载,它隔离空间中数据会被删除。在此之后,没有办法再恢复数据了。 每个应用程序可以获得多大隔离存储空间?...这也是为什么它能够与任何应用程序使用Setting对象配合原因,同时,也说明了在重新获取设置页面,为什么要调用ForceRefresh方法。    ...如果你应用程序使用了特别的设备功能(如利用位置服务来获取邮政编码,而无需用户手动输入),微软推荐应用程序设置页面应当提供设置来禁止这些功能。...没有这部分的话,由于time picker控件引入页面导航,用于设置time picker值OnNavigatedTo部分代码会覆盖掉新选择值。...这个应用程序使用了更加简单方法:使用自定义字体。列表20.8包含了TimeDisplay用户控件XAML代码,它实现了七段显示。     在使用自定义字体之前,确保你具有这个权限!

    1.1K60

    【愚公系列】2023年09月 WPF控件专题 DatePicker控件详解

    WPF控件可以分为两类:原生控件自定义控件。 原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。...这些控件都是WPF中常见标准用户界面元素。 自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化用户界面元素。自定义控件可以根据需求提供更多功能和自定义化选项,以及更好用户体验。...也可以将"SelectedDate"属性设置为特定日期值,以便在控件上显示默认日期。 DatePicker控件提供其他属性,以便进一步自定义控件行为和外观。...FirstDayOfWeek:获取或设置一周第一天。 CalendarStyle:获取或设置应用于控件日历样式。 IsDropDownOpen:获取或设置一个值,该值指示下拉式日历是否显示。...报告日期:在生成报告,需要指定报告生成日期,使用DatePicker控件可以方便地选择日期。

    80820

    【愚公系列】2023年12月 Winform控件专题 ColorDialog控件详解

    欢迎 点赞✍评论⭐收藏 前言 Winform控件是Windows Forms中用户界面元素,它们可以用于创建Windows应用程序各种视觉和交互组件,例如按钮、标签、文本框、下拉列表框、复选框、单选框...一、ColorDialog控件详解 ColorDialog控件是Winform中提供一个颜色选择对话框,它可以方便地让用户选择喜欢颜色,并在应用程序使用。...在使用ColorDialog控件,需要在相应事件中调用ShowDialog方法显示颜色选择对话框,并在用户选择颜色后,通过Color属性获取所选颜色。...= color; } } 1.属性介绍 1.1 FullOpen FullOpen属性是一个布尔类型属性,用于指示是否允许用户使用自定义颜色。...2.常用场景 ColorDialog控件是Winform中常用颜色选择器控件之一,常用场景如下: 设置文本、背景等控件颜色:当用户需要自定义控件颜色,可以使用ColorDialog控件进行选择。

    64312

    【愚公系列】2023年09月 WPF控件专题 Calendar控件详解

    WPF控件可以分为两类:原生控件自定义控件。 原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。...这些控件都是WPF中常见标准用户界面元素。 自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化用户界面元素。自定义控件可以根据需求提供更多功能和自定义化选项,以及更好用户体验。...一、Calendar控件详解 WPF中Calendar控件是一个显示日期和日期范围UI控件。它可以让用户选择一个特定日期,并且可以用于在应用程序中显示日期相关信息。...DisplayDateStart:获取或设置日历控件可显示最早日期。 DisplayDateEnd:获取或设置日历控件可显示最晚日期。...2.常用场景 WPF中Calendar控件用于以下场景: 日历功能:用于选择日期或日期范围。 任务管理:用于显示任务截止日期。 预约/日程安排:用于显示可用时间段或已安排时间。

    64411

    【愚公系列】2023年09月 WPF控件专题 Image控件详解

    WPF控件可以分为两类:原生控件自定义控件。 原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。...这些控件都是WPF中常见标准用户界面元素。 自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化用户界面元素。自定义控件可以根据需求提供更多功能和自定义化选项,以及更好用户体验。...BitmapImage类用于加载图像,并将其设置为Image控件源。 1.属性介绍 WPF中Image控件常用属性如下: Source:设置或获取图像源。...Height:设置或获取Image控件高度大小。 StretchUnit:设置或获取Stretch属性用于计算单位。默认值为Pixel。...DecodePixelWidth和DecodePixelHeight:设置或获取解码图像宽度和高度。这可用于控制图像大小,从而节省内存。 IsAsync:设置或获取是否异步加载图像。

    70600

    【愚公系列】2023年11月 WPF控件专题 Popup控件详解

    WPF控件可以分为两类:原生控件自定义控件。 原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。...这些控件都是WPF中常见标准用户界面元素。 自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化用户界面元素。自定义控件可以根据需求提供更多功能和自定义化选项,以及更好用户体验。...一、Popup控件详解 WPF中Popup控件是一种轻量级容器,可以在其内容部分显示其他控件。Popup控件在显示和隐藏没有边框或标题栏,通常用于显示上下文菜单、浮动工具栏、弹出窗口等。...2.常用场景 Popup控件在WPF中常用于以下场景: 提供弹出式菜单:在用户点击某个按钮或控件,弹出菜单供用户选择操作,选择完成后,菜单自动隐藏。...提供弹出式窗口:在用户需要输入某些数据或进行某些操作,弹出窗口供用户完成操作。 提供提示信息:在需要向用户提供某些提示信息,弹出窗口可以提供一些简单文本信息。

    1.3K51

    【愚公系列】2023年09月 WPF控件专题 ComboBox控件详解

    WPF控件可以分为两类:原生控件自定义控件。 原生控件是由Microsoft提供内置控件,如Button、TextBox、Label、ComboBox等。...这些控件都是WPF中常见标准用户界面元素。 自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化用户界面元素。自定义控件可以根据需求提供更多功能和自定义化选项,以及更好用户体验。...选择项更改事件:可以使用SelectionChanged事件处理ComboBox控件中选择项更改。可以使用SelectedItem属性获取当前选择项。...SelectedIndex:获取或设置ComboBox中选中项索引。如果没有选中项,该属性值为-1。 MaxDropDownHeight:设置ComboBox展开后下拉框最大高度。...下拉式菜单:适用于菜单项较多场景,可以通过ComboBox来展示整个菜单,并进行多级选择。 ComboBox控件是一种非常灵活控件,可以用于许多不同场景中,为用户提供更好交互体验。

    1K20

    标记扩展(Markup Extension)

    主要有以下几种: x:Static 用于引用以符合公共语言规范 (CLS) 方式定义任何静态按值代码实体。 可使用引用静态属性在 XAML 中提供属性值。...x:Type 为命名类型提供 Type 对象。此扩展最常用于样式和模板。 x:Array 通过标记扩展提供对 XAML 中对象数组一般支持。...动态资源引用强制在每次访问此类资源都进行新查找。该标记扩展引用资源则对声明位置没有太多要求,因为它在运行时候采取查找资源。...ThemeDictionary 为集成第三方控件自定义控件创作者或应用程序提供一种方法,用于加载要在设置控件样式使用特定于主题资源字典。...MarkupExtension仅提供一个简单ProvideValue(IServiceProvider serviceProvider)方法来获取所期望数值。

    40330

    自定义View从入门到上天

    (TextView+VideoGroup)、下拉刷新、瀑布流控件、带左/右滑功能控件、视频控件等,这种自定义View难点在于程序逻辑处理; 完全自定义控件 继承自View、TextureView...等方法,这种自定义View难点在于程序设计、效率优化和排版,比如输入法中手写控件、图文混排控件(现在很多都是通过webview加载网页实现了)、词典取词控件、图表控件、个性化进度条、弹幕显示控件、...除了可以在自定义View中提供公开接口外,还可以通过自定义属性,在对自定义View布局就指定,这样可以简化用户使用控件复杂度,实现自定义属性步骤如下: 在自定义View工程res/values...: TypedArray使用完成后一定要调用其recycle方法,否则会有内存泄露问题; .如果自定义View在一个单独module中(不属于主工程),对attr获取不能使用switch-case...中关掉硬件加速,这会导致自定义View,canvas某些方法不能正常使用,为了让自定义View达到更好表现效果,建议不要关掉有用到自定义View界面的硬件加速(因为在View层面只能关闭硬件加速,

    1.2K20
    领券