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

AngularJS表单重置

罗宪
2023-03-14
问题内容

我有一个角度复位功能,可以清除表单中的所有字段。如果我做类似的事情:

<a href="#" ng-click="resetForm()">reset</a>

$scope.resetForm = function() {
  $scope.someForm = {};
}

一切正常。但我想将此功能用于网站上的多种表单。如果我像这样传递表单对象:

<a href="#" ng-click="resetForm(someForm)">reset</a>

$scope.resetForm = function(form) {
  $scope.form = {};
}

那就行不通了。有人可以向我解释为什么会这样吗?


问题答案:

您有2个问题:

  • 您没有访问传入的变量,而是仍访问someForm当前作用域。
  • 当您将参数传递给函数时,它通过引用传递。即使在使用时form = {},它也不起作用,因为它仅更改 参数 的引用,而不更改传入的引用someForm

尝试:

$scope.resetForm = function(form) {
  //Even when you use form = {} it does not work
  form.fieldA = null;
  form.fieldB = null;
  ///more fields
}

要么

$scope.resetForm = function(form) {
      //Even when you use form = {} it does not work
      angular.copy({},form);
    }

代替:

$scope.resetForm = function(form) {
  $scope.form = {};
}

在您的朋克中,我看到您没有将视图与模型分离。您应该这样做是为了分离关注点,并避免在清除所有字段(包括DOM表单对象的字段)时可能发生的问题。

<form name="form2" ng-controller="SecondController">
      <label for="first_field">First Field</label>
      <input ng-model="form2Model.first_field" />
      <br />
      <label for="second_field">Second Field</label>
      <input ng-model="form2Model.second_field" />
      <br />

      <a href="#" ng-click="secondReset(form2Model)">Reset the form</a>
    </form>

http://plnkr.co/edit/x4JAeXra1bP4cQjIBld0?p=preview



 类似资料:
  • 问题内容: 我正在尝试使用angularjs进行验证表单,到目前为止我做得很好。但是,当我提交我的重置按钮时,除了我从验证部分得到的错误消息之外,所有字段都会重置。重置表单时如何摆脱所有字段和错误消息。 当我按下重置按钮时就是这样 这是我的代码 我的控制器 问题答案: 重置时: 去掉 这是表单控制器的Angular 文档。

  • 问题内容: 嗨,我有一个表格,单击按钮后会更新。 项目更新后,不会删除表单字段中输入的信息。我想知道在udpat后可以在angularjs中添加什么以添加上述代码,以便它也可以清除。谢谢 问题答案: 您可以通过以下方式重置表单,但是如果要将模型对象绑定到输入,则还需要注意清除这些输入,即: 编辑 正如ToodoN-Mike所指出的,不要忘记设置 该标志以角度1.3引入。

  • 问题内容: AngularJS 1.1.x的路线图上有一个将表单字段重置为原始状态(重置脏状态)的功能。不幸的是,当前的稳定版本中缺少此功能。 将AngularJS 1.0.x的所有表单字段重置为其初始原始状态的最佳方法是什么? 我想知道这是否可以通过指令或其他简单的解决方法来解决。我更喜欢一种无需接触原始AngularJS来源的解决方案。为了澄清和演示该问题,提供了指向JSFiddle的链接。h

  • 问题内容: 我正在学习AngularJs的学习过程,发现几乎没有任何示例可用于现实世界。 我试图对如何使用最标准的组件提交表单并将其传递给PHP文件有一个清晰的了解。 我的小提琴。 有人在提交简单,无污染的表单方面有什么好的例子吗,这些表单会对我以及其他许多Angularjs初学者有所帮助。 当我说一个干净的表格时,我指的是这样的东西。 我的ng-app代码… 我猜我接下来要问的三个问题是… 我的

  • 本文向大家介绍angularJS提交表单(form),包括了angularJS提交表单(form)的使用技巧和注意事项,需要的朋友参考一下 代码很简单,就不多废话了,直接奉上代码: 这里给大家分享的是最基础的angularJS表单验证,希望大家能够喜欢。

  • 问题内容: 提交表单后,我一直在努力重置表单。有人在这里发布了此文件,我想使其正常运行,但没有成功。这是我的代码示例。 没有设置为 true 。参见上面的例子。 问题答案: $ setPristine()是在angularjs的1.1.x分支中引入的。您需要使用该版本而不是1.0.7才能运行。 看到http://plnkr.co/edit/815Bml?p=preview