无法在 ng-checked 函数中获取传递的参数
Not able to get the passed argument in ng-checked function
我在 ng-checked 中调用了一个函数来检查当前复选框的值是否为 'test' 如果它被选中则应选中该复选框,否则应取消选中该复选框
为了实现这一点,我将 this.value 作为参数传递给在 ng-checked 中调用的 show 函数。但是这个 this.value
在登录 console 时是未定义的。即使我将事件对象作为参数传递到函数内部,它也会返回未定义的。
请检查以下代码:
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>
提前致谢:)
您可能想使用 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>
我在 ng-checked 中调用了一个函数来检查当前复选框的值是否为 'test' 如果它被选中则应选中该复选框,否则应取消选中该复选框
为了实现这一点,我将 this.value 作为参数传递给在 ng-checked 中调用的 show 函数。但是这个 this.value
在登录 console 时是未定义的。即使我将事件对象作为参数传递到函数内部,它也会返回未定义的。
请检查以下代码:
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>
提前致谢:)
您可能想使用 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>