我在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>
提前致谢:)
答案 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>