Angular JS函数用于重置范围中的变量

时间:2017-08-09 14:19:24

标签: javascript angularjs

我是Angular JS的新手,想要创建一个函数,如果按下Button按钮重置某些复选框,输入字段和选择字段。我尝试了以下方法:

我的JS文件:

Module.controller('FirstCtrl', function($scope){
    $scope.checkbox= false;
    $scope.textfield = "";
    $scope.selectfield= "-1";

    $scope.reset = function(){
      $scope.checkbox= false;
      $scope.textfield = "";
      $scope.selectfield= "-1";
}
});

我的HTML-snippet:

<input type="checkbox" ng-model="checkbox">
<select ng-model="selectfield">
   <option value="-1">undefined</option>
   <option value="0">Level 0</option>
   <option value="1">Level 1</option>
   <option value="2">Level 2</option>
</select>
<input type="text" ng-model="textfield">
<button ng-click="reset()">Reset Filter</button>

但是运行它不会更新HTML中的值。我不懂为什么。任何想法?

编辑:

我还在我的代码中添加了一些警告框,并发现切换一个复选框例如确实有效但将其值设置为false确实没有效果。调用该函数并正确分配模块和控制器。这里是我的代码,用于切换正在工作的复选框:

$scope.toggle = function(){
    $scope.checkbox = !$scope.checkbox;
}

为什么这样正常工作并正确更新值,但直接将其设置为false不起作用???

我发现如果单击它,我的复选框的值不会改变。显示了一个复选标记,但$ scope.checkbox = false。

的值

1 个答案:

答案 0 :(得分:3)

它充当魅力,没有变化 - 可能你在其他地方遇到了问题。

&#13;
&#13;
angular
  .module('app', [])
  .controller('FirstCtrl', function($scope) {
    $scope.checkbox = false;
    $scope.textfield = "";
    $scope.selectfield = "undefined";

    $scope.reset = function() {
      $scope.checkbox = false;
      $scope.textfield = "";
      $scope.selectfield = "undefined";
    }
  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app">
  <div ng-controller="FirstCtrl">
    <input type="checkbox" ng-model="checkbox">
    <select ng-model="selectfield">
      <option value="-1">undefined</option>
      <option value="0">Level 0</option>
      <option value="1">Level 1</option>
      <option value="2">Level 2</option>
    </select>
    <input type="text" ng-model="textfield">
    <button ng-click="reset()">Reset Filter</button>
  </div>
</div>
&#13;
&#13;
&#13;