如何在点击事件上重置所有模型?

时间:2016-11-17 10:18:23

标签: javascript jquery angularjs

我的要求:点击按钮

重置我的选择框

示例: -

我有3个选择框。当我点击选择框时会出现一些不同的数据,然后结果将被发布。我添加了一个删除按钮,它只重置其父选择框。现在,我想知道的是,如何在点击删除按钮时重置所有三个选择框。

示例代码如下: -

<button ng-click="removeObj(key,model1,0)">Remove</span></button>

控制器代码如下: -

scope.removeObj = function(modelID, subModelID, selectBoxPos) {
   modelID = 0;
   subModelID = 0;
})

我想点击removeObj函数,所有modelID数据都会重置为零。

请帮忙。

3 个答案:

答案 0 :(得分:0)

据我所知,您不需要任何参数..只创建一个有意义的名称resetModels

AngularJS控制器:

$scope.resetModels = function() {
   // Set default value to your models...
   $scope.modelID = 0; 
   $scope.subModelID = 0;
});

Html:

<button ng-click="resetScpeModels()">Remove</span></button>

答案 1 :(得分:0)

如果要重置所有值。你应该像这样使用它

     $scope.model = {};
     $scope.model.modelID = 0;
     $scope.model.subModelID = 0;

     <input ng-model="model.modelID"/>

如果要重置它。再次致电

    $scope.model = {};

内部ng-click功能。

答案 2 :(得分:0)

当您为form命名时,它会自动添加到$scope

在角度方面,我们在$setPristine()上使用$scope.formName方法。这应该递归地处理重置你的表格。

您可以按$scope.formName.$setPristine();重置表单,但如果您将模型对象绑定到输入,则还需要清除那些,即:

$scope.formModel={};angular.copy({}, formModel);

工作演示:

var app = angular.module('myApp', []);

app.controller('myController', function($scope) {
  $scope.Reset = function(formModel) {
    angular.copy({}, formModel);
    $scope.formModel = {};
    $scope.submitForm.$setPristine();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
    <form name="submitForm" ng-controller="myController">
      <label for="first_field">First Model</label>
      <input ng-model="formModel.firstModel" />
      <br />
      <label for="second_field">Second Model</label>
      <input ng-model="formModel.secondModel" />
      <br />
      <button type="button" ng-click="Reset(formModel)">Reset</button>
    </form>
</div>