Angular.js表单提交动作丢失了吗?

时间:2017-11-03 16:04:32

标签: html angularjs forms

我将旧表单复制到新网站,旧表单正在运行,但新表单没有,我不知道缺少什么。

The old form is at : http://nmjava.com/gate/Contact_Information.html
New form is at : http://gatecybertech.com/Contact_Information.html

我知道HTML,但不知道Angular.js,我知道当按下提交按钮时,会调用表单中的操作,但在我的情况下它看起来像这样:

<form  name="form"  id="form" Method="post" class="form-horizontal" ng-hide="submitDone == true" ng-submit="onSubmit(form.$valid)" novalidate="novalidate">

在我查看该页面上的代码后,我无法找到&#34; onSubmit(表单。$ valid)&#34;正在发生,我想必须有一些处理它的功能,但它在哪里?

1 个答案:

答案 0 :(得分:1)

Angular是一个MVC框架,A.K.A Model, View, Controller。这种情况下的视图是UI(HTML),模型包含业务逻辑,例如状态管理或AJAX调用, 并且控制器对视图作出反应以便从模型中获取数据,然后发送回视图。

可以有很多视图,控制器和模型。

Angular解析html中的ng-* 指令(以及其他自定义指令)并试图遍历controller的范围以便评估属性的值,在本例中为onSubmit(form.$valid)

为了找到包含你的功能的正确控制器, 你应该考虑以下几点:

  1. 使用ng-controller指令将角度控制器附加到视图。包含此指令的HTML元素的作用域将指向该指令的属性值(ng-controller="mainCtrl")中指定的控制器,并且所有子元素也可以访问该作用域。

    < / LI>
  2. Angular具有范围层次结构,这意味着您的代码可以位于ng-submit的父元素的任何嵌套控制器中。

  3. Angular还有一个全局范围,名为$rootScope,可以从视图的任何部分访问,如果$rootScope依赖关系被注入其中,也可以访问控制器。< / p>

  4. 因此,简而言之,您的功能就在其中一个控制器中。使用以上几点,您可以将搜索范围范围(无双关语)缩小到相关控制器之一,通常位于应用程序的controllers文件夹中。