angular 长期存在的基于模板驱动表单的问题

pw9qyyiw  于 4个月前  发布在  Angular
关注(0)|答案(5)|浏览(106)

哪个@angular/*包是bug的来源?

forms

这是个回归吗?

描述

  • 内置验证器,如required仍然与FormsModule一起导入
  • ngModel类型和相应自定义值访问器的类型没有被检查,实际上[ngModel]具有any类型,没有类型检查,你可以将任何类型的任何属性传递给[ngModel](例如Date而不是string),编译器会很高兴。
  • 控件值访问器无法访问其有效性状态,组件只能依赖于像ng-valid这样的css类,但在你想显示一个下拉列表的情况下,它不会继承这些类,因为它是在组件外部渲染的
  • 没有方法可以禁用内置的css类,如ng-valid
  • 验证错误仍然不会传播到父表单
  • [ngModel]仍然比其他任何输入属性延迟一拍写操作

请提供一个最小复现bug的链接

  • 无响应*

请提供您看到的异常或错误

  • 无响应*

请提供您发现此bug的环境(运行ng version)

  • 无响应*

还有其他要说的吗?

  • 无响应*
pepwfjgg

pepwfjgg1#

这个功能请求现在已经成为我们的待办事项候选!在接下来的阶段,社区有60天的时间进行投票。如果请求获得超过20票的赞成,我们将把它移到我们的考虑列表中。
你可以在我们的文档中找到更多关于功能请求流程的详细信息。

hk8txs48

hk8txs482#

请注意,我们已经开始了针对您的功能请求的社区投票过程。距离投票过程结束还有20天。
有关Angular功能请求流程的更多详细信息,请参阅我们的文档。

368yc8dk

368yc8dk3#

感谢您提交您的功能请求!看起来在投票过程中,它没有收集到足够的票数进入下一阶段。
我们希望保持Angular丰富且符合人体工程学,同时关注其范围和学习过程。如果您认为您的请求可能超出了Angular的范围,我们鼓励您与community合作,将其发布为开源项目package
您可以在我们的文档中找到有关功能请求过程的更多详细信息。

nle07wnf

nle07wnf4#

你好,你能给我们提供一些更多的信息,看看我们是否可以解决一些问题吗?

ivqmmu1c

ivqmmu1c5#

@JeanMeche,

  1. 一些验证器指令总是被导入,例如required。如果我想要使用我自定义的required验证器,我必须选择一个不同的名称(不好),或者有两个验证器匹配相同的属性(也不好)。

  2. 我的问题是关于模板驱动表单,根本没有类型检查。如果你在任何大型应用程序中为所有自定义访问器添加类型化的ngModel/ngModelChange,你将得到大量的错误。

  3. 一个例子就是任何具有下拉/弹出菜单的表单控件,例如通过cdk覆盖显示的自动完成,它不会继承任何有效性样式/类。

  4. 这是3的结果,如果我们有任何API来获取有效性,那么我们就不需要内置的类。

  5. 是的,你不能有这个非常基本的东西,而且将错误传播到自定义值访问器也是有意义的,例如为了能够显示错误提示。

  6. NgModel defers writeValue call to the next tick. Conflicts with OnInit's contract of child components. #13568有一个示例

相关问题