stu*_*oid 12 javascript forms angularjs
我有一个角度重置功能,以清除表单中的所有字段.如果我这样做:
<a href="#" ng-click="resetForm()">reset</a>
$scope.resetForm = function() {
$scope.someForm = {};
}
Run Code Online (Sandbox Code Playgroud)
一切正常.但我想将此功能用于网站上的多个表单.如果我传递表单对象:
<a href="#" ng-click="resetForm(someForm)">reset</a>
$scope.resetForm = function(form) {
$scope.form = {};
}
Run Code Online (Sandbox Code Playgroud)
然后它将无法正常工作.有人可以向我解释为什么会发生这种情况吗?
Kha*_* TO 20
你有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
}
Run Code Online (Sandbox Code Playgroud)
要么
$scope.resetForm = function(form) {
//Even when you use form = {} it does not work
angular.copy({},form);
}
Run Code Online (Sandbox Code Playgroud)
代替:
$scope.resetForm = function(form) {
$scope.form = {};
}
Run Code Online (Sandbox Code Playgroud)
在你的插件中,我看到你没有将视图与模型分开.您应该这样做以分离关注点,并避免在清除所有字段(包括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>
Run Code Online (Sandbox Code Playgroud)
http://plnkr.co/edit/x4JAeXra1bP4cQjIBld0?p=preview
| 归档时间: |
|
| 查看次数: |
52764 次 |
| 最近记录: |