首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从父作用域检查包含ng的表单的有效性?

如何从父作用域检查包含ng的表单的有效性?
EN

Stack Overflow用户
提问于 2013-04-04 18:02:26
回答 2查看 12.6K关注 0票数 28

我有一个在我的应用程序中的多个视图之间共享的子窗体。在一个视图中,该子窗体单独显示,底部有一个back/continue按钮,它将用户引导到下一个子窗体。在另一个视图中,子窗体显示在与其他子窗体相同的页面上(基本上是一个长窗体)。

由于子表单的html在两个视图中都是100%相同的,所以我将其分成一个部分,并使用ng-include来呈现它。在仅显示带有back/continue按钮的子窗体的视图中,我在父HTML中呈现了back/continue按钮。

从视觉上看,一切正常,我能够访问表单(user.email, user.password, user.etc...)中输入的所有数据。

问题是,我根据用户是否正确完成了表单来启用/禁用"continue“按钮,这在”仅限子窗体“变体中不起作用,因为父作用域似乎无法访问表单的状态。如果我把按钮放在partial中,它会起作用,但我不想那样做,因为在使用这个partial的每个实例中,这些按钮并不属于那里。

JSFiddle Example

请注意,在我的示例中,红色边框中的submit按钮是禁用的,直到在框中键入内容并显示“表单无效?”值更新,而蓝色边框内的按钮始终处于启用状态,并显示“表单无效?”值为空。

如何从父作用域访问myForm.$invalid的值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-09 09:16:56

如果是子窗体,只需将form-tag从子窗体移到main-form中:updated JSFiddle

您还可以使用ngForm-directive嵌套表单

angular表单中的

可以嵌套。这意味着当所有子窗体都有效时,外部窗体也是有效的。然而,浏览器不允许嵌套元素,因此angular提供了ngForm别名,它的行为与相同,但允许表单嵌套。

结果是有点混乱的imo。我宁愿创建一个具有新作用域的‘myForm’-指令,以避免使用$parent -类似于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myApp.directive('myForm',function(){
    return{ 
        restrict:'E',
        scope:{model:'='},
        templateUrl:'/form.html',
        replace:true
    }
});

查看此JSFiddle example

票数 15
EN

Stack Overflow用户

发布于 2014-05-16 17:32:43

使用ng-include时创建的子作用域对父对象隐藏了表单函数。

除了使用指令之外,您还可以在父级中添加对象,但将表单的名称设置为具有如下属性的对象是很重要的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form name="myFormHolder.myForm">

并且在父控制器中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$scope.myFormHolder = {};

那么下面的方法应该是可行的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$scope.myFormHolder.myForm.$pristine

这样,当计算表单时,myForm.$valid将在父级上设置。我想我问了同样的问题:Why form undefined inside ng-include when checking $pristine or $setDirty()?

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15818431

复制
相关文章
anjularjs ng-include造成的作用域问题
使用angularjs开发,有时候页面太大,代码行数太多,这时候会造成代码难以维护,以及查找和阅读代码变得越来越困难。而html页面就可以用ng-include将代码代码进行分页,但是ng-include自带作用域,很可能造成网页无法造成运行的后果。
陨石坠灭
2018/10/19
7500
全局作用域、函数作用域、块级作用域的理解
ES6中新增的概念,在ES5中是没有的,ES5中没有? 没有的时候我们代码也写的好好的,现在新增的概念,我不用不行吗? 来,拋一个典型的问题出来,你就明白块级作用域出现的重要性了。
yuezhongbao
2019/02/26
3.1K0
全局作用域、函数作用域、块级作用域的理解
Rust中的作用域及作用域的规则
所有权是 Rust 最独特的特性,它使 Rust 能够在不需要 GC 的情况下保证内存安全。在本章中,我们将讨论所有权以及几个相关特性:借用/切片,以及 Rust 如何在内存中布局数据。
端碗吹水
2022/06/02
4K1
Rust中的作用域及作用域的规则
作用域和作用域链的简单理解
javascript采用的静态作用域,也可以称为词法作用域,意思是说作用域是在定义的时候就创建了, 而不是运行的时候。此话对于初学者很不好理解,看看下面这个例子:
ZEHAN
2020/09/23
8180
作用域和作用域链的简单理解
JavaScript中的作用域和作用域链
作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。可能这两句话并不好理解,我们先来看个例子:
刘亦枫
2020/03/19
2.2K0
JavaScript中的作用域和作用域链
作用域及作用域链的解释说明
javascript中作用域是指变量与函数可访问的范围。作用域分为两类,一种是全局作用域,一种是局部作用域。全局变量拥有全局作用域,在JavaScript代码中的任何地方都有定义。局部变量是在函数体内声明而且只作用在函数体内部以及该函数体的子函数的变量。下面我们对全局作用域和局部作用域来做一个深入的理解。
OECOM
2020/07/02
1.2K0
作用域及作用域链的解释说明
使用python批量检查url的有效性
因为工作需要,之前用python写了一些批量校验url有效性的小脚本,但并不全面,健壮性较差,现把之整理一下,代码如下:
py3study
2020/01/08
4K0
变量的作用域
变量的作用域 在JavaScript中,根据作用域的不同,变量可以分为两种: 全局变量 局部变量 1. 全局变量 在全局作用域下声明的变量叫做全局变量(在函数外部定义的变量)。 全局变量在代码的任何位置都可以使用 在全局作用域下 var 声明的变量 是全局变量 特殊情况下,在函数内不使用 var 声明的变量也是全局变量(不建议使用) 2.局部变量 在局部作用域下声明的变量叫做局部变量(在函数内部定义的变量) 局部变量只能在该函数内部使用 在函数内部 var 声明的变量是
清出于兰
2020/10/26
7470
变量的作用域
打算装起来体验一下最初发布的版本, 但是发现只有 Windows 版本, 所以我就装了个 Windows10的虚拟机, 就在我打算安装的时候, 发现:
烟草的香味
2021/01/20
9490
变量的作用域
作用域插槽的使用(四个作用域的区别)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129125.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/30
4410
作用域插槽的使用(四个作用域的区别)
【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )
在 Groovy 脚本中 , 定义两个变量 , 一个使用 def 声明 , 一个直接声明变量 ;
韩曙亮
2023/03/30
1.3K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )
JavaScript的作用域和块级作用域概念理解
运行这段代码,会出现“use an undefined variable:j”的错误。可以看到,C语言拥有块级作用域,因为j是在if的语句块中定义的,因此,它在块外是无法访问的。
IMWeb前端团队
2019/12/04
6610
【说站】js变量的作用域如何使用
2、函数外部自然不能读取函数内的局部变量。请注意,当函数内部声明变量时,务必使用var命令,否则会声明变量。
很酷的站长
2022/11/23
1.9K0
【说站】js变量的作用域如何使用
HTML 表单 (form) 的作用解释
参考网址: 《HTML中form表单作用解释》 表单在网页中主要负责的是数据采集功能,一个表单基本由三部分组成: 表单标签:这里面包含了处理表单数据所用 CGI (Common Ga
剑影啸清寒
2018/01/02
5.4K0
JavaScript的作用域和块级作用域概念理解
本文介绍了JavaScript的作用域和块级作用域的概念,以及如何使用闭包来模拟块级作用域,并给出了相应的示例。
IMWeb前端团队
2017/12/29
9000
作用域与作用域链
通常来说,一段程序代码中所用到的名字并不总是有效或可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域scope。当一个方法或成员被声明,他就拥有当前的执行上下文context环境。在有具体值的context中,表达式是可见也都能够被引用。如果一个变量或者其他表达式不在当前的作用域,则将无法使用。作用域也可以根据代码层次分层,以便子作用域可以访问父作用域,通常是指沿着链式的作用域链查找,而不能从父作用域引用子作用域中的变量和引用。
WindRunnerMax
2020/08/27
1.9K0
java作用域-什么是JavaScript作用域、作用域链?
作用域、作用域链也是面试中出镜率很高的问题之一java作用域java作用域,同时也是中最重要的基础概念之一。
宜轩
2022/12/29
1.9K0
bean的作用域解析
       2.指定作用域的目的是 存储在此类单例bean的高速缓存中,并且对该命名bean的所有后续请求和引用都返回该高速缓存的对象。(本身的理念就是以空间换时间的思维,创建步骤繁杂,而且频繁用到,我就存起来,下次用的时候就不用了创建了)
忧愁的chafry
2022/10/30
3910
spring bean的作用域
Bean的作用域 参考:spring FrameWork官方文档 spring4.x中官方有7中作用域,如果使用的是applicationContext作为容器的话就只用5中作用域 下面的其中作用域为
用户1418372
2018/09/13
1.2K0
spring bean的作用域
一、变量的作用域
通常所说的整型,实际指的是如下四种类型: byte:一个byte型整数在内存里占8位,表数范围是:-128到127. short:一个short型整数在内存里占16位,表数范围是:-32768到32767. int:一个int型整数在内存里占32位,表数范围是:-2147483648到2147483647. long:一个long型整数在内存里占64位,表数范围是:-9223372036854775808到9223372036854775807.
CN_Simo
2022/05/10
6390
一、变量的作用域

相似问题

NG包含作用域

10

如何从父html访问ng包含的html的表单?

10

从父作用域访问子作用域

12

AngularJS:如何从父作用域访问子作用域对象?

11

如何从父作用域获取参数到子作用域?

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文