当前位置: 首页 > 面试题库 >

如何从父范围检查包含ng的表单的有效性?

梁丘逸仙
2023-03-14
问题内容

我有一个子窗体,可在我的应用程序的多个视图之间共享。在一个视图中,此子窗体单独显示,底部带有“上一步/继续”按钮,可将用户引导至下一个子窗体。在另一个视图中,子窗体与其他子窗体(基本上是一个长格式)显示在同一页面上。

由于子窗体的html在两个视图中都是100%相同的,因此我将其分成了一部分,并正在使用ng- include它进行呈现。在仅显示带有“后退/继续”按钮的子表单的视图中,我在父级HTML内渲染“后退/继续”按钮。

从视觉上看,一切正常,我可以访问以(user.email, user.password, user.etc...)形式输入的所有数据。

问题是我根据用户是否正确填写了表单来启用/禁用“继续”按钮,并且这在“仅子表单”变体中不起作用,因为父作用域似乎无法能够访问表单的状态。如果我将按钮粘贴在部分中,则可以使用,但是我不想这样做,因为在使用该部分的每个实例中,按钮并不都属于那里。

JSFiddle示例

请注意,在我的示例中,红色框内的“提交”按钮被禁用,直到在框中键入内容并且“表单无效?”。值更新,同时始终启用蓝色边框内的按钮并且“表格无效?” 值是空白。

如何myForm.$invalid从父范围访问值?


问题答案:

如果它是子表单,则可以将表单标签从子表单移到主表单中:更新后的JSFiddle

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

可以嵌套成角度形式。这意味着外部形式在所有子形式都有效时也有效。但是,浏览器不允许嵌套元素,因此,angular提供了ngForm别名,该别名的行为与之相同,但允许表单嵌套。

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

myApp.directive('myForm',function(){
    return{ 
        restrict:'E',
        scope:{model:'='},
        templateUrl:'/form.html',
        replace:true
    }
});

-请参阅此JSFiddle示例



 类似资料:
  • 问题内容: 我正在使用Joda Time 2.1库。 我已经编写了一种比较给定日期是否在日期范围之间的方法。我希望它包含开始日期和结束日期。我已经习惯了,因为我不想考虑时间部分仅是日期部分。 下面是它的代码。 上面方法的输出是: 我的问题是错误的,即使日期和具有相同的值。 我想要那个,但这里只考虑。 我希望它具有包容性。 这是否意味着该方法专门找到一个匹配项? 我在Joda Time中浏览了Jav

  • 问题内容: 我对angularjs很陌生。说我的应用程式有表格。使用检查器,我注意到,如果angularjs认为该表单无效,则会向该表单添加ng- invalid类。可爱。 因此,似乎为了检查表单是否有效,我需要使用Jquery选择器来污染我的代码吗?不使用表单控制器来指示表单有效性的angularjs方法是什么? 问题答案: 当您将标签放入ngApp时,AngularJS会自动添加表单控制器(实

  • 问题内容: java中是否有一种优雅的方法来检查int是否等于或大于或小于1。 例如,如果我检查周围。我想在上返回true ,因为4和6距5仅1。 有内置功能可以做到这一点吗?还是我最好这样写? 当然,以上代码很难看懂。那有更好的方法吗? 问题答案: 找到它们之间的绝对差异 基于@GregS关于溢出的评论,如果您给出的差值不能适合整数,您将获得一个溢出值 通过将其中一个参数强制转换为long 将返

  • 我一直在尝试在listview生成器的末尾添加一个按钮。我试着做这个问题中建议的事情:Flutter:如何在ListView的末尾添加一个按钮小部件。包含其他类型小部件的生成器?。但如果我这样做,我会得到:“RangeError(index):无效值:不在包含范围0..49:50中 我试图寻找问题,也有这个问题,但我找不到一个答案,解决它。

  • 问题内容: 编辑,根据以下答案略微更改了代码,但仍无法正常工作。 我还添加了一条日志消息,告诉我getCount是否返回> 0,并且确实如此,所以我认为查询可能有问题吗?或我对光标的使用。 我已经创建了一个表,我想检查它是否为空,如果它为空,我想运行一些插入语句(存储在数组中)。 下面是我的代码,虽然我没有错误,但是当我拉出.db文件时,我可以看到它不起作用。您将如何解决这个问题? 抱歉,如果这是

  • 问题内容: 我想知道如何在给定父范围的情况下获取所有子范围的列表。我可以从该范围的属性中找到$ childHead,$ childTail,$ nextSibling和$$ prevSibling。 我现在使用的方法是从父级获取childHead,然后使用nextSibling获取下一个孩子,直到nextSibling为空。 有没有更好的方法?鉴于我想在所有子项上调用方法[getModel],是否