位置: 编程技术 - 正文

详细分析使用AngularJS编程中提交表单的方式

编辑:rootadmin

推荐整理分享详细分析使用AngularJS编程中提交表单的方式,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在AngularJS出现之前,很多开发者就面对了表单提交这一问题。由于提交表单的方式繁杂而不同,很容易令人疯掉……然而现在看来,依然会让人疯掉。

今天,我们会看一下过去使用PHP方式提交的表单,现在如何将其转换为使用Angular提交。使用Angular来处理表单,对我而言,是一个“啊哈”时刻(译者:表示了解或发现某事物的喜悦)。即使它甚至都没有涉及多少Angular表层的东西,但是它却帮助用户看到表单提交之后的潜力,并且理解两种数据绑定方式。

我们会使用jQuery平台来进行这个处理过程。所以所要做的工作首先使用javascript。我们会提交表单,展示错误信息,添加错误类,并且在javascript中显示和隐藏信息。

之后,我们会使用Angular。在使用之前,我们要做大部分所需的工作,并且我们之前所做的很多工作会非常容易。让我们开始吧。

简单的表单

我们会关注两种提交表单的方式:

旧方法:jQuery和PHP提交表单 新方法:AngularJS和PHP提交表单

首先看一下我们的表单,超级简单:

形式要求

实现页面无刷新表单处理 输入姓名和超级英雄别名 如果有错误,显示错误提示 如果输入有误,将输入变成红色 如果所有内容ok,显示成功提示

文档结构

在我们的展示中,仅需两个文件

index.html process.php

表单处理

让我们新建一个PHP来处理表单。该页面非常小并且使用POST方式提交数据。

处理表单:这对我们来说并不是那么重要的。你可以使用其他你喜欢的语言来处理你的表单。

这是一个非常简单的表单处理脚本。我们仅检查数据是否存在,如果存在,则不做任何处理和操做;如果不存在,则需要向$errors数组中添加一条信息。

为了返回我们的数据用于AJAX调用,我们需要使用echo和json_encode。这就是我们PHP表单处理所有需要做的操作。使用普通的jQuery AJAX或者Angular处理表单也是这样的。 展示表单

让我们创建一个HTML来展示我们的表单

现在,我们有了表单。我们另外还使用了Bootstrap来使表单看起来不是那么丑。使用Bootstrap语法规则,每个input下含有一个spot来展示我们文本的错误信息。

使用jQuery提交表单

现在,让我们来使用jQuery处理表单提交。我会将所有的代码添加到空的<script>标签中

这里处理表单有不少的代码。我们有获取表单中变量的代码,有使用AJAX将数据发送至我们的表单的代码,有检查是否有错和显示成功提示的代码。除此之外,我们希望每次表单提交之后,过去的错误信息都会被清除。确实是不少代码。

现在,如果表单中含有错误,则:

如果提交成功:

现在,让我们看使用Angular来提交相同的表单。记住,我们不需要更改任何关于我们的PHP如何处理表单的内容,我们的应用依然会具备相同的功能(在同一个地方展示错误和成功信息)。

使用Angular提交表单

我们准备在之前使用的<script>标签中设置我们的Angular应用。所以删除里面的内容,我们就可以开始了。设置一个Angular应用

步骤为:

1. 加载Angular

2. 设置module

3. 这是controller

4. 将module和controller应用于HTML

5. 设置双向变量绑定

6. 这是错误和信息

详细分析使用AngularJS编程中提交表单的方式

看起来好像是很多内容,但是最终,我们会用非常少的代码,并且看起来会非常简洁。另外,创建带有更多输入更大的表单,也会更容易。

Angular 组件和控制器

首先,加载Angular并且新建组件和控制器

现在,我们有了Angular应用的基础。我们已经加载了Angular,创建了组件模块和控制器,并且将其应用于我们的网站。

接下来,我将展示双向绑定是如何工作的。

双向数据绑定

这是Angular的核心思想之一,也是功能最强大的内容之一。在Angular文档中,我们看到:“在Angular网页应用中的数据绑定,是模型和视图层之间的数据自动同步。”这意味着,我们需要在表单中抓取数据,使用$('input[name=name]').val()并不是必需的。

我们在Angular中将数据和变量绑定在一起,无论是javascript也好,view也罢,只要有改变,两者皆变。

为了演示数据绑定,我们需要获取表单的input来自动填充变量formData。让我们回到应用于页面的Angular控制器中。我们在过一下$scope和$http。

$scope:控制器和视图层之间的粘合剂。基本上,变量使用$scope从我们的控制器和视图层之间传递和往来。具体详细的定义,请参见文档。

$http:Angular服务来帮助我们处理POST请求。更多信息,请参见文档。

使用数据绑定获取变量

好了,闲话少说。我们将这些讨论应用到表单中去。方法比上面讨论的要简单。我们想Angular控制器和视图中分别添加一行。

现在,我们已经建立了一个formData对象。让我们用表单数据来填充它。在显示调用每个输入和获得val()之前,我们用ng-model绑定一个特殊的输入到变量。

现在,既然Angular已经将每个输入绑到了formData。 当你输入每个输入框,你可以看到formData对象被填充了!有没有很酷!

你不必在view中使用$scope。一切被认为是嵌入到$scope中的。 处理表单

在我们的旧表单中,我们使用jQuery提交表单,像这样$('form').submit()。现在我们使用Angular称作ng-submit的特性。要想完成这个,我们需要添加一个控制器函数来处理表单,然后告诉我们form使用这个控制器函数:

现在我们的form知道提交时使用控制器函数了。既然已经到位了,然我们用$http来处理表单吧。

处理表单的语法看起来跟原始方式很像。好处是我们不需要手动抓取表单数据,或者注入,隐藏,添加类显示错误或成功信息。

这就是我们的表单!没有添加或移除类。我们需要每次提交表单时都清楚错误。我们只需绑定变量和需要用到的视图。这非常棒,因为处理器用来处理数据,而视图用来显示数据.

jQuery POST vs Angular POST

有时能看到用POST方式提交在服务器中看不到数据,这是因为jQuery和Angular的序列化和发送数据的方式不同。这归结于你所使用的服务器语言和它理解Angular提交的数据的能力。

上面的代码是应用于PHP服务器的,jQuery对于$.param函数则是必需的。虽然实现上文中提到的内容有非常多不使用jQuery的方法,但在本实例中,使用jQuery的唯一原因就是,它更简单。

下面简洁的语法将会基于你服务器端语言来工作。

简洁语法

这个例子是以字符串的方式发送数据,并且发送你的头信息。如果你不需要这些,并且希望Angular 的$http POST尽可能的简洁,我们可以使用简写方法:

绝对更简洁更容易记住方法。

$http 内部控制器: 理想的,你可以将$http请求从controller移除到 service.这只是为了演示目的,我们将会尽快在service上进行讨论.

在视图中显示错误和信息

我们将使用指令ng-show和ng-class来处理我们的视图,Angular双方括号允许我们将变量放置在我们需要的地方。

ng-show: 根据变量值是否存在来显示或隐藏元素. 文档 ng-class: 根据变量值是否存在(或一些其他表达式)来添加或移除类. 文档

我们的表单完成了!通过强大的Angular,我们可以将这些愚蠢的显示/隐藏的js代码逻辑从视图中移走 了。现在我们的js文件只用来处理数据,并且视图可以做它自己的事情了。

我们的类和错误/成功等提示信息将在可获取时显示而不可获取时隐藏。当我们无须再像使用老的javascript那样担心是否已经考虑全面,这变得更加容易。你也无须再担心是否记得隐藏每处form提交时的那些错误信息。

Angular表单验证 获取更多表单验证的信息,请研读我们另一文章:AngularJS Form Validation。结束语

现在我们已把美观的表单全部转变为Angular的了。我们共同学习了许多概念,希望你与它们接触更多,它们也将更易用。

回顾:

创建一个Angular module 创建一个Angular controller 双向数据绑定 ng-model绑定inputs ng-click提交表单 使用双向数据绑定展示表单错误 展示一个基于是否变量存在的div 添加一个基于是否变量存在的类

这些Angular技术将在更庞大的应用中使用,你可以用它们创建许多好东西。祝Angular之途愉快,敬请期待更多深入的文章。同时,你也可以通过深入了解其指南,服务和厂商等来继续学习Angular。

使用ngView配合AngularJS应用实现动画效果的方法 AngularJS提供了一个很棒的方式来创建单页app。正是由于这个原因,使得我们的站点看起来更像是一个原生的手机程序。为了使它看起来更像是原生的程

使用AngularJS处理单选框和复选框的简单方法 AngularJS对表单的处理相当简单。在AngularJS使用双向数据绑定方式进行表单验证的时候,实质上它在帮我们进行表单处理。使用复选框的的例子有很多,

使用AngularJS和PHP的Laravel实现单页评论的方法 完整代码:

标签: 详细分析使用AngularJS编程中提交表单的方式

本文链接地址:https://www.jiuchutong.com/biancheng/380438.html 转载请保留说明!

上一篇:详细解读AngularJS中的表单验证编程(详细解读了)

下一篇:使用ngView配合AngularJS应用实现动画效果的方法

  • 企业所得税年报申报时间
  • 分公司所得税汇算清缴
  • 企业净利润怎么分配
  • 增值税发票什么时候认证
  • 关联企业往来款 利息
  • 小微企业减免所得税
  • 上市公司现金流充足说明什么
  • 小规模纳税人如何开电子发票
  • 股东实物分红账务怎么做
  • 销售收入包括应收销货款
  • 房地产公司房屋质量排名
  • 企业免征土地使用税吗
  • 未分配利润转增股本 个人所得税
  • 营改增后建筑业税率变化情况
  • 960011115金税盘错误
  • 个体户可以申请公章吗
  • 上月已认证的发票发现错误怎么办
  • 园林绿化公司购入剪刀怎么做会计分录
  • 合同作废合同
  • 个人取得的拍卖资格
  • 发出商品如何做分录
  • 公司帮个人代缴社保会计分录
  • 发票打印注意什么
  • 增值税即征即退会计处理
  • 员工饭卡充值是哪个部门做
  • 固定资产出售后净残值怎么处理
  • 商贸流通企业的构成
  • 应收票据的贴现利息应计入
  • 招商银行直播在哪个平台
  • fbembed.dll
  • php怎么定义全局变量
  • 安博塞利国家公园狮子
  • 银行罚息计入什么会计科目
  • 夕阳下的大白鲨过山车,美国新泽西州 (© John Van Decker/Alamy)
  • 未确认融资费用借贷方向
  • 劳务发票服务类型有哪些
  • consul框架
  • vue2路由跳转页面不刷新问题
  • PHP中使用关键字什么来指明类与类之间的继承关系
  • 哪些项目计入其他应收款
  • 1.2版本的oppo手机解锁方法
  • hostnamectl命令
  • 公司银行开户的费用怎么做账
  • 收费公路通行费补费平台
  • 投资性房地产公允价值模式账务处理
  • java集合详解以及底层实现
  • 现金股利要交税
  • SQL Server通过重建方式还原master数据库
  • 银行卡频繁小额转账
  • 软件研发的整个流程
  • 残保金逾期申报了补报会有罚款和滞纳金吗?
  • 社会保险中断后还可以续保吗
  • 预收账款的账务处理怎么对企业有利
  • 奖金做预发年底会发吗
  • 商贸企业如何结转已销商贸成本
  • 期初应收账款对应什么科目试算平衡
  • 公允价值变动损益
  • 培训费发票属于哪个税目
  • 付款成功的钱怎么返还
  • 公司内部核算调研报告
  • 转出未交增值税和未交增值税区别
  • 汇算清缴后缴纳所得税会计分录
  • sqlserver存储过程声明变量
  • sql的all和any
  • centos怎么设置
  • windowsxp怎么隐藏桌面图标
  • xp 指定的域不存在,或无法联系
  • 安装metpy
  • linux datetime命令
  • 红帽企业版更新了吗
  • mediaexplorer是什么意思
  • linux中vi替换
  • 全球知名的中文搜索引擎
  • win10 win8.1
  • cocos做游戏
  • vue项目中使用scss
  • jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
  • unity3d鼠标点击移动
  • python字符有哪些
  • jquery获取值的几种方法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设