无法在ng-checked函数中获取传递的参数

时间:2017-12-18 09:53:30

标签: javascript angularjs angularjs-ng-checked

我在ng-checked中调用了一个函数,检查当前复选框的值是否为'test',如果已选中,则应选中复选框,否则应取消选中该复选框

为了达到这个目的,我将this.value作为show函数的参数传递,该函数在ng-checked中调用。但是在登录控制台时未定义此this.value。即使我将函数内部的事件对象作为参数传递,它也会返回undefined。

请检查以下代码:

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

app.controller('mainController', function($scope, $http) {
    $scope.show = function(val) {
        console.log(val);
        if (val == 'test') {
            return true;
        } else {
            return false;
        }
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div ng-app="app">
    <div ng-controller="mainController">
	    <input type="checkbox" value="test" ng-checked="show(this.value)"/>
    </div>
</div>

提前致谢:)

1 个答案:

答案 0 :(得分:2)

您可能希望使用ng-model而不是ng-checked

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

app.controller('mainController', function($scope, $http) {
  $scope.test = false
  $scope.show = function(val) {
      $scope.test = val
  }

  /// after fetching data from your server, 
  /// you can set checked by calling:
  $scope.show(true)
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div ng-app="app">
  <div ng-controller="mainController">
    <input type="checkbox" ng-model="test"   />
     
  </div>
</div>