2

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

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

请检查以下代码:

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>

提前致谢 :)

4

1 回答 1

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>

于 2017-12-18T09:58:23.583 回答