【问题标题】:Parent form-child from communication OR relation OR validation来自通信或关系或验证的父表单子
【发布时间】:2016-06-21 23:25:50
【问题描述】:

我认为这个问题已经用复杂的术语提出了。但我试图在这里让它变得简单


我有一个 父组件,其中包含 表单标签和提交按钮。它有一个 子组件,它有一个 input required fieldform 标签和按钮

现在假设我想将 custom validation 放入 输入字段entered letters must be uppercase 效果很好。简而言之,这两个验证在子 cmp 中都可以正常工作。

你可以在这里查看和玩 => https://plnkr.co/edit/0iMTib?p=preview

如何启用父表单的提交按钮

如何使父表单有效,

if child form is valid?

如果我有更多的嵌套表单,也可以考虑!

ANGULAR2中父窗体和子窗体之间有什么关系吗???

【问题讨论】:

    标签: angular angular2-forms angular2-formbuilder


    【解决方案1】:

    您可以在valueChanges 时发出子表单状态并向父表单添加一些逻辑来检查:

    <child (valid)="childValid($event)"></child>
    

    对于更复杂的用例,我建议使用全局应用程序状态来保存表单状态/值,然后可以从应用程序中的任何位置访问它们。这是一个使用@ngrx/store的示例:gist

    【讨论】:

    • 我知道。但是让我们说一下如果我有多个子 cmps 有什么形式。在这种情况下该怎么办?我也不想使用@Input @Output-EventEmitter 机制。必须有某种方法可以通过父表单访问子表单。
    • 请检查控制台。我已经在子 cmp 中使用valueChanges。但这似乎不是最终的解决方案。我猜但不确定在angular1 中是否存在某种方式。
    • 如果你有很多,我会建议一些应用程序状态技术...@ngrx/store,例如。我没有尝试嵌套表单,接缝对我来说很笨重,应用程序状态更干净......
    • 你能给我任何app-state的参考吗?任何链接或示例或什么?
    • 基本上你创建对象forms 并在那里保存所有表单的相关数据(如状态甚至值)。然后将其用于 UI 检查。 @ngrx/store 是 app-state 的类似 redux 的实现。我正在使用this 来管理我的表单,例如...
    猜你喜欢
    • 1970-01-01
    • 2022-09-15
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    相关资源
    最近更新 更多