如何从组件内获取对 Angular 构建的 ControlGroup 的引用?

2024-05-01

我有一个组件,包含模板驱动表单。我真正想做的是添加一个代码routerCanDeactivate检查表单是否为的方法pristine如果没有,则在继续导航之前警告用户。我知道 Angular 采用模板驱动形式并构建一个 ControlGroup。在模板中,我可以像这样访问它:<form #hf="ngForm" ...>有没有办法从组件内部引用它? 如果这是不可能的,是否有另一种方法可以通过routeCanDeactivate 检查表单是否脏? 感谢您的帮助。


准备表格

你需要添加ngControl到每个控件

<input ngControl="someName" ...>

and ngControlGroup输入和之间的每个元素<form> element

<div ngControlGroup="groupName">

让您的表单控件由NgForm指示。

参考表格

如果您的模板中只有一个表单,您可以使用

@ViewChild(NgForm) formA;

获取对表单的引用,否则将模板变量添加到表单

<form ngForm #formA="ngForm">

并使用获取参考

@ViewChild('formA') formA;

然后你可以检查pristine状态如

routerCanDeactivate() {
  return this.form.pristine;
}

笨蛋的例子 https://plnkr.co/edit/o1c2j9?p=preview

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

如何从组件内获取对 Angular 构建的 ControlGroup 的引用? 的相关文章

随机推荐

  • 如何使用 C 将带有 2 个变量的 IF 语句转换为 switch 函数?

    我有一个 IF 语句 我想将其转换为 Switch 语句 但它有 2 个变量 在C上可以实现吗 这是一个石头 剪刀 布的游戏 R代表石头 P代表布 S代表剪刀 char play1 play2 printf nPlayer 1 Enter
  • 使用异步函数等待 onclick 的用户输入

    我是异步新手 也许只是不了解基础知识 但我试图通过调用弹出模式并等待用户提交数据的异步函数来等待来自 onclick 的用户输入 在找到一两个甚至提到使用异步等待页面事件的来源后 这对我的特定任务并不是特别有帮助 我想出了这个 asnyc
  • 如何将 Netbeans 项目导入 Eclipse

    我想将我的 NetBeans 项目转移到 Eclipse 这是一个网络应用程序项目 我将 war 文件导入到 Eclipse 中 但无法获取 Java 文件 并且 war 文件给了我很多错误 导入整个项目的最佳方式是什么 另一种简单的方法如
  • Togglz 我的 SpringBoot 的 Yml/Yaml 配置不起作用

    尝试使用 Togglz 创建功能切换 在我的应用程序中进行了以下配置 代码 bootstrap yml togglz enabled true features FEATURE ONE true 功能枚举类 public enum AppF
  • 如何从对象文字数组中切片数组?

    我有这个数组 其中每个索引都包含一个对象文字 所有对象字面量都具有相同的属性 某些对象文字对于给定属性具有相同的值 我想创建一个包含only那些对象文字 我的想法是对数组进行排序 并将其切片成一个新数组 这是数组 var arr arr 0
  • virtualenv、python 和 subversion

    我正在尝试在 python subversion SWIG 库中使用virtualenv no site packages环境 我怎样才能做到这一点 你可以从 svn 将其安装在 virtualenv 中 source home you v
  • 您在一次渲染中修改了 *** 两次

    升级到 1 13 后 出现此异常 但我不知道问题出在哪里 我也找不到任何有用的资源来解决我的问题 我在另一个计算属性中设置的属性会发生这种情况 但这个属性肯定只被调用一次 我创建了一个 jsbin 示例 http emberjs jsbin
  • 如何在 Mac 上升级 Docker? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我尝试了 docker machine升级 并做了一些工作 但我似乎没有最新的 CLI 如果我执行 docker 版本 我会得到 Clie
  • 无法从“https://services.gradle.org/distributions/gradle-2.1-all.zip”安装 Gradle 发行版

    我是 gradle 新手 我只是尝试在 IntelliJ 中创建一个新的 Android Gradle 项目 填写完必需品后 它开始下载一些东西 这花了几个小时 所以我决定强制退出 IDE 并再次打开项目 And now I am gett
  • 函数不会在所有代码路径上返回值。使用结果时,运行时可能会发生空引用异常

    我收到此错误 函数 getkey 不会在所有代码路径上返回值 当结果为空引用异常时 可能会在运行时发生 用过的 到以下代码 Public Function getkey ByVal id As String Dim cmd As SqlCo
  • 在执行方法的括号内声明变量

    默认情况下 变量在方法执行之前定义 例如 DateTime myDate if DateTime TryParse date out myDate 我们可以实现内联声明 并且该变量可以在外部使用 例如 if DateTime TryPars
  • 如何使用 Node JS 对包含小数/尾随零的数据生成哈希

    在尝试验证 Node JS 中的 Authorize net webhook 通知时 我遇到了以下与小数 尾随零有关的问题 Authorize net 使用 HMAC SHA512 以及 Webhook 通知正文和商家的签名密钥形成哈希 该
  • 私人 NuGet Feed - 记住密码

    每当我在 Visual Studio 中更新 NuGet 包时 系统都会提示我输入有关私有 NuGet 源的用户名和密码 尽管我勾选了方框 记住我的密码 后续 NuGet 更新时系统会提示我输入密码 如何让它正确记住我的密码 这是来自 Vi
  • 删除行时 QModelIndex 变得无效

    我正在子类化QAbstractItemModel显示项目QTreeView 并且在这个子类中 projectModel 我有一个功能可以删除树视图中当前选定的索引 Component是用于表示模型所有成员的类 void projectMod
  • Spark DataFrame 删除重复项并保留第一个

    问题 在 pandas 中 当删除重复项时 您可以指定要保留哪些列 Spark Dataframes 中有等效的吗 Pandas df sort values actual datetime ascending False drop dup
  • 易失性限定符是否会取消该内存的缓存?

    在本文中 http www drdobbs com parallel 易失性 vs 易失性 212701484 pgno 2 http www drdobbs com parallel volatile vs volatile 212701
  • 如何获取R中的脚本路径? [复制]

    这个问题在这里已经有答案了 可能的重复 Rscript 确定执行脚本的路径 https stackoverflow com questions 1815606 rscript determine path of the executing
  • 隐藏 IntelliJ 2020 代码编辑器中浮动的“1 使用”指示器

    不知何故 我做了一些事情让 IntelliJ 指示类中每个变量的多种用法 诸如 1 用法 之类的文本出现在每个变量声明上方 我怎样才能关闭它 See the Show hints的部分Code Vision在首选项 设置下Editor gt
  • 方法参数数组默认值[重复]

    这个问题在这里已经有答案了 在 C 中 可以在方法中使用默认参数值 例如 public void SomeMethod String someString string value Debug WriteLine someString 但现
  • 如何从组件内获取对 Angular 构建的 ControlGroup 的引用?

    我有一个组件 包含模板驱动表单 我真正想做的是添加一个代码routerCanDeactivate检查表单是否为的方法pristine如果没有 则在继续导航之前警告用户 我知道 Angular 采用模板驱动形式并构建一个 ControlGro