我有一个角度复位功能,可以清除表单中的所有字段。如果我做类似的事情:
<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