【问题标题】:Angular.js form submit action missing?Angular.js 表单提交动作丢失?
【发布时间】:2018-04-16 10:23:24
【问题描述】:

我将旧表单复制到新站点,旧表单可以使用,但新表单无法使用,我不知道缺少什么。

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">

查看该页面上的代码后,我找不到“onSubmit(form.$valid)”发生在哪里,我想肯定有一些函数可以处理它,但它在哪里?

【问题讨论】:

  • 会有一个脚本或者很可能是一个 .js 文件作为控制器,并且其中会有一个声明为 $scope.onSubmit = function(formValid) .... 的函数或类似的东西。

标签: html angularjs forms


【解决方案1】:

Angular 是一个MVC 框架,又名Model, View, Controller。本例中的视图是 UI (HTML),模型包含 业务逻辑,例如状态管理或 AJAX 调用, 控制器对视图做出反应,以便从模型中获取数据,然后发送回视图。

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

Angular 为 ng-* directives(以及其他自定义指令)解析 html 并尝试遍历 controller 的范围以评估属性的值,在这种情况下onSubmit(form.$valid).

为了找到包含您的函数的正确控制器, 您应该考虑以下几点:

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

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

  3. Angular 也有一个全局作用域,称为$rootScope,可以从视图的任何部分以及控制器中访问,如果$rootScope 依赖项注入其中。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 2013-07-02
    • 2012-04-11
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多