带有 ngmodel 的 Angular 2 动态表单示例导致“表达式在检查后已更改”

2024-01-09

我正在寻找使用这个example https://angular.io/docs/ts/latest/cookbook/dynamic-form.htmlAngular 文档中提供了与 [(ngmodel)] 结合使用动态表单的功能。以便动态表单控件可以绑定到模型。

但是,当我尝试将控件绑定到 [(ngMode)] 时,我看到错误消息

检查后表情发生了变化。先前值:“假”。当前值:“真”。

Here https://plnkr.co/edit/3hpld2nUTIVgzhHbscaY?p=preview是一个经过更改的 Plunker 示例。

我修改了 QuestionBase 类来保存密钥

export class QuestionBase<T>{
      ...
      modelKey:string;
      ...
}

在 QuestionService 中,每个问题现在都有它应该更新的模型的名称

  new TextboxQuestion({
          ...
          modelKey: 'firstName'
  }),

在动态表单问题组件中,模型作为输入变量传入

  export class DynamicFormQuestionComponent {
        ...
        @Input() model: SampleModel;
        ...
  }

DynamicFormQuestionComponent HTML 字段已修改为使用 [(ngModel)]

<input *ngSwitchCase="'textbox'" [formControlName]="question.key"
        [id]="question.key" [type]="question.type" [(ngModel)]="model[question.modelKey]">

这里的控件应该绑定到已解析的“model[question.modelKey]”

鉴于我没有看到官方文档中提供的示例中使用了 [(ngModel)] 。

如有任何帮助,我们将不胜感激。

非常感谢你。


我很高兴你发现它有帮助..我将来会把它留在这里给其他人..

双向绑定ngModel是为模板驱动的表单而设计的 比动态反应形式。

以下资源将有助于帮助您对比如何做 “模板驱动”方式与“动态反应”方式的区别:

  • Angular 2 形式视频 |卡拉埃里克森 https://www.youtube.com/watch?v=xYv9lsrV0s4
  • Angular 2 Forms 仓库 |卡拉埃里克森 https://github.com/kara/ac-forms
  • NgModel https://angular.io/docs/ts/latest/api/forms/index/NgModel-directive.html
  • 表单控件 https://angular.io/docs/ts/latest/api/forms/index/FormControl-class.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 ngmodel 的 Angular 2 动态表单示例导致“表达式在检查后已更改” 的相关文章

随机推荐

  • 缓存过期控制与上次修改

    在阿帕奇的mod expires模块 有Expires具有两个基准时间段的指令 access and 修改 ExpiresByType text html access plus 30 days 可以理解 这意味着缓存将在 30 天后请求新
  • 如何在 PHP 中将指数转换为小数

    我有一个像这样的字符串 9 018E 14 现在我想将其转换为正常的十进制数 我的极客伙伴 http www mygeekpal com how to convert exponentials to decimals in php 有一篇关
  • MySQL 连接器、流式结果集和批量获取

    我正在浏览 MySQL Connector 5 1 24 源代码 我注意到该方法中有一些不寻常的地方StatementImpl createStreamingResultSet javadoc 说 我们仅在结果集是只进 只读和 获取大小已设
  • 如何在 iPhone 上使用 Quartz/Core Graphics 显示国际口音

    我已经本地化了一个适用于 iPhone 的应用程序 毫不奇怪 本地化包括一些口音 触摸卡片进行选择 然后触摸 出价 Touchez les cartes pour les 选择者 puis touchez 守财奴 这些在高级的东西中工作得很
  • 将 UTC 纪元转换为本地日期

    我已经为此奋斗了一段时间了 我正在尝试将纪元转换为日期对象 该纪元以 UTC 格式发送给我 每当你经过new Date 一个纪元 它假设它是本地纪元 我尝试创建一个 UTC 对象 然后使用setTime 将其调整到正确的纪元 但似乎唯一有用
  • 在 R 中创建表达式树

    中的替代函数R以可以解析的树的形式创建一个语言对象 如何使用 list 从头开始 创建树 然后将其交给 eval substitute gives a tree representation of the expression a 1 b
  • 如何在 ASP.NET 3.5 中对每个 http 请求进行缓存

    我们使用 ASP NET 3 5 基于控件的方法 并且只需要特定于一个 http 请求的存储 使用会话 id 中的键的线程特定缓存将不起作用 因为线程应该被池化 因此我有机会在缓存中获得来自某些先前请求的数据 这在我的情况下是不可取的 我总
  • 在python中组合两个循环

    假设有两个多边形 p1 和 p2 其中 p2 完全在 p1 内部 p1 0 10 10 10 10 0 0 0 p2 2 6 6 6 6 2 2 2 degree of contact 0 xyarrays p1 p2 p1 degree
  • asp.net 中的 GridView 标题文本

    我想使用 Design 更改 gridview 的标题文本
  • Terminal.app 可以遵循 ANSI 转义码吗?

    我注意到 随着TERM环境变量设置为xterm or xterm 256colorMac OS X 的 Terminal app 实用程序尊重大多数 ANSI 转义码 至少当这些转义码涉及更改文本颜色时 例如 echo e 033 0 31
  • 我可以使用 C# 在 Sharepoint 2010 中为计算字段创建自己的公式吗

    我想使用 Visual Studio 2010 以 C 语言为 Sharepoint 2010 创建一个以编程方式计算的字段 有没有办法设置一个公式来调用我自己的函数并将结果返回到字段 我的场景 假设我想创建一个始终返回其他两个字段之间的总
  • 发件人证书在签名验证之前已过期

    我正在开发一个关于 Java 中的证书和数字签名的项目 但我无法理解以下情况 文件发送者和接收者的证书在创建签名时有效 但当接收者收到文件时 发送者的证书已过期 这种情况是否有效 接收者可以正常验证签名 还是不能 还有一个问题 不可否认密钥
  • GLMakie 图 x 轴的量化失真。为什么?

    我使用创建一个简单的图GLMakie GLMakie scatter range 3e 9 1e 3 3e 9 1e 3 100 range 1 100 100 结果如下 看起来 x 轴被严重量化了 这Plots包可以很好地处理相同的命令
  • libpng 在 png_read_info() 上崩溃

    我正在尝试在 vs2013 中使用 libpng 1 2 10 读取 png 文件 我下载了最新的zlib并编译了pnglib 运行良好 现在我正在尝试加载一个文件 int w width int h height const char n
  • 在 Android 的异步任务线程中调用 invalidate 时出现问题!

    我试图从 asynctask 线程调用 invalidate 我收到此错误 10 18 15 14 30 469 错误 AndroidRuntime 889 导致 android view ViewRoot CalledFromWrongT
  • 如何获取 Lucene 索引中文档子集的顶级术语?

    我知道可以获取 Lucene 索引中的顶级术语 但是有没有办法根据 Lucene 索引的子集获取顶级术语 IE 特定日期范围内的文档索引中最重要的术语是什么 理想情况下 应该有一个实用程序可以执行此操作 但我不知道有这样的实用程序 然而 以
  • 根据字符集对单词进行聚类

    假设有一个单词集 我想根据它们的字符包 多重集 对它们进行聚类 例如 茶 吃 阿爸 阿阿 你好 将被聚类成 茶 吃 abba aabb 你好 abba and aabb聚集在一起是因为它们具有相同的字符包 即两个a和两个b 为了提高效率 我
  • 适用于 Windows 和 Mac 的 Node.js — 正斜杠、反斜杠修正

    有没有一种方法可以纠正从 Windows 到 Linux 和 Mac 的 Node js 中有关反斜杠与正斜杠的差异 Windows 在调用以下位置时需要反斜杠git bash 而 Mac Linux 需要正斜杠 我正在与 Mac 和 Wi
  • 如何将支持库小吃栏文本颜色设置为 android:textColor 以外的颜色?

    因此 我开始在设计支持库中使用新的 Snackbar 但我发现当您在主题中定义 android textColor 时 它会应用于 Snackbar 的文本颜色 如果您的主要文本颜色是深色 这显然是一个问题 有谁知道解决这个问题的方法或者对
  • 带有 ngmodel 的 Angular 2 动态表单示例导致“表达式在检查后已更改”

    我正在寻找使用这个example https angular io docs ts latest cookbook dynamic form htmlAngular 文档中提供了与 ngmodel 结合使用动态表单的功能 以便动态表单控件可