Angular2 构建简单表单时没有 ControlContainer 的提供程序

2024-06-23

这是我的表格:

应用程序组件.html

<form [ngFormModel]="myForm">
    <my-child-component></my-child-component>
</form>    

应用程序组件.ts

constructor ( private _formBuilder : FormBuilder ) {
    this.myForm = _formBuilder.group( {
        firstName : ["",Validators.required]
    } );
}

我的孩子组件:

 <input type="text" ngControl="firstName">  

Error:

   No provider for ControlContainer 
   [ERROR ->]<md-input
            ngControl="firstName"
            placeholder="First name">

如果我将输入移动到应用程序组件本身内部,它会起作用,但我的输入位于子组件内部。

FORM_DIRECTIVES and FORM_PROVIDERS正在顶级应用程序级别注入。我完全按照他们的指南做了一切。

我也尝试添加FORM_DIRECTIVES给孩子或 app.component 没有成功。


您可以使用ngFormControl指令而不是ngControl然后将控制变量传递给子进程Input像这样:

<form [ngFormModel]="myForm">
  <my-child-component [control]="myForm.controls.firstName"></my-child-component>
</form>

子组件

@Component({
  selector: 'my-child-component',
  template: `
    <input type="text" [ngFormControl]="control">  
  `,
  directives: [FORM_DIRECTIVES]
})
export class Child {
  @Input() control: Control;
}

另请参阅笨蛋https://plnkr.co/edit/ydRAOmFG6FU6lxTonWzj?p=preview https://plnkr.co/edit/ydRAOmFG6FU6lxTonWzj?p=preview

NgControl 指令是子模板中必需的表单标签

也可以看看

  • https://angular.io/docs/ts/latest/cookbook/dependency-injection.html#!#qualify-dependency-lookup-with-optional-and-host- https://angular.io/docs/ts/latest/cookbook/dependency-injection.html#!#qualify-dependency-lookup-with-optional-and-host-

  • https://github.com/angular/angular/blob/master/modules/%40angular/common/src/forms/directives/ng_control_name.ts#L106 https://github.com/angular/angular/blob/master/modules/%40angular/common/src/forms/directives/ng_control_name.ts#L106

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular2 构建简单表单时没有 ControlContainer 的提供程序 的相关文章

随机推荐

  • 使用 FragmentStatePagerAdapter 从 ViewPager 动态删除项目

    围绕这个话题有很多讨论 ViewPager PagerAdapter 不更新视图 https stackoverflow com a 7287121 494659 动态更新ViewPager https stackoverflow com
  • 缓存隐式解析

    为了减少项目的编译时间 我缓存了通过隐式查找解析的某些类型类 但这看起来有点麻烦 因为直接的实现不起作用 scala gt implicit val x String implicitly String x String null 隐式查找
  • SQL Server JOIN 缺少 NULL 值

    假设我有以下 2 张表 Table1 Table2 Col1 Col2 Col3 Col1 Col2 Col4 a b c a b d e
  • 如何删除其他目录中不存在的文件?

    我有两个目录 我们称它们为src and build 我的构建系统可以正常工作 因此对于所有具有更新时间的文件src比在build它从复制文件src to buid并进行一些转换 缩小 版本控制等 否则会跳过 因为文件被认为是最新的 然而
  • 在 python 中将 url 添加到 mysql 行

    我正在尝试使用 python 和 MySQLdb 库将 url 添加到 mysql 中的文本行 但是当我运行代码时 它说我的 sql 语法中有错误 你能告诉我我做错了什么吗 这是我的代码 import MySQLdb as mdb conn
  • 如何在 Safari 中调试嵌入式 JavaScript

    编辑 根据 dmi3y 的建议 更新了标题 将 内联 更改为 嵌入 以更好地反映问题的性质 在 Chrome 中 我通常通过在 JS 文件中设置断点来调试 JS 但是 Chrome 还允许您在存在内联 JS 的情况下使用实际文档执行此操作
  • 在 Windows 上使用 asprintf()

    我编写了一个在Linux上完美运行的C程序 但是当我在Windows上编译它时 它给我一个错误 说asprintf 未定义 它应该是 stdio 库的一部分 但似乎许多编译器不包含它 我可以在 Windows 上使用哪个编译器来使用 asp
  • 如何使用nix构建docker容器?

    我有一个 Nix 包 我想将其捆绑到 docker 容器中 具体来说 我想使用 Nix 作为更具表现力的替代方案Dockerfile拥有更快的 非线性 图像构建 我找到了有关的文档dockerTools buildImage https n
  • .NET 集合是一个结构体

    这是一个有趣的问题 是否有一个集合is net 框架中某处的结构 只是为了澄清 所有现有的集合 列表 数组等 都是引用类型 即使您将泛型参数设置为值类型 但我想知道是否有一种方法可以创建一个实际上是结构的集合 我显然不打算传递它 这会导致大
  • 关闭并打开“wifi和移动网络位置”后活动识别不起作用[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在使用活动识别来检测用户活动 我发现一个奇怪的行为 在我关闭并打开 WiFi 和移动网络位置 后 应用程序没有获得任何活动识别更新
  • 为什么我必须明确告诉 Spark 要缓存什么?

    在 Spark 中 每次我们对 RDD 执行任何操作时 都会重新计算 RDD 因此 如果我们知道 RDD 将被重用 我们应该显式地缓存 RDD 比方说 Spark 决定延迟缓存所有 RDD 并使用 LRU 自动将最相关的 RDD 保留在内存
  • 如何在fortran中调用和使用另一个子程序中的子程序?

    我正在编写一个程序 其中主程序包含许多子例程和函数 为了构造主程序的这些子程序之一 假设是子程序 A 我需要使用另一个子程序 假设是 B 我的问题是 如何调用子程序A并使用子程序B 我是初学者 我已经搜索了很多 但没有找到我清楚理解的东西
  • 为什么框架的自然高度不立即更新?

    我正在编写一个小部件来显示一些文本行 通过Label in a Frame 并且一旦文本高度大于包含内容的高度 就需要调整字体大小Frame 为此 我正在查询 winfo reqheight 为了Label和Frame文本更新后 想法是减少
  • 在 VB.NET 中调用过程的优缺点是什么?

    我想知道在VB NET中使用Call关键字和不使用Call调用程序的优缺点 Private Sub ProOne Code Are Here End Sub Private Sub Calling ProOne I would like t
  • 如何计算django中两个日期之间的差异

    我想计算当前日期和前一个日期之间的天数差异 我正在尝试这段代码 requiremntObj CustomerLeads objects all a datetime datetime now date for i in requiremnt
  • 如何设置 Flutter CameraPreview 大小“全屏”

    我正在使用相机预览来测量物体的高度 但问题是我无法全屏设置相机预览高度 我努力了定位小部件 它充满了屏幕 但图像被拉伸 我努力了变换小部件 但高度没有填满全屏 出现空白 图像没有拉伸 Mycode final size MediaQuery
  • iOS Catalyst Cocoapod 框架错误 - 签名需要开发团队

    我正在更新我的 iOS 应用程序 使其也可以在 Mac 上运行 选择 Mac 复选框后 当我尝试为 Mac 构建时 出现下面屏幕截图中的错误 它告诉我需要为这个 Cocoapod 框架选择一个开发团队 不过 我可以在不选择开发团队的情况下构
  • 基础知识 - Hibernate / JDBC 连接池问题故障排除

    Hibernate 对于从底层连接池获取的数据库连接的责任是什么 它是否在使用连接之前测试连接是否已关闭 如果是的话 从池中获取另一个连接 我在下面包含了错误和确认信息 任何关于我可以从哪里开始解决这个问题的想法都会非常有帮助 以及有关我们
  • 如何查找正在运行的 JVM 附带的 java 代理列表?

    我正在尝试调试添加到生产 JVM 的 Java 代理之一的问题 在应用程序的启动脚本中 Java代理已正确添加 并且已在其他环境中运行 但在生产中 该代理似乎不起作用 有没有办法找到添加的java代理列表 这个问题类似于JVM 可以检索已通
  • Angular2 构建简单表单时没有 ControlContainer 的提供程序

    这是我的表格 应用程序组件 html