我在我的角度应用程序中使用了一些复选框,默认情况下会进行检查。这些复选框处于ng-pristine状态。如果发布表单而不使其变脏,我如何在控制器中接收这些输入。
<input type="checkbox" name="c1" name="favoriteColors" ng-model="data.checkboxtest[1]" ng-checked="true">
<input type="checkbox" name="c2" name="favoriteColors" ng-model="data.checkboxtest[2]">
控制器:
$scope.submitNewTemplate = function(){
console.log($scope.data.checkboxtest)
}
返回&#34;未定义&#34;
答案 0 :(得分:0)
看到我在这里添加了演示代码复选框
请看一下。 可能这会对你有所帮助
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.testModel = {
item1: true,
item2: false,
item3: false
};
$scope.submit = function() {
console.log($scope.testModel);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<html ng-app="plunker">
<head>
<meta charset="utf-8">
<title>AngularJS Plunker</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<label>
<input type="checkbox" name="test1" ng-model="testModel.item1" />Testing</label>
<br />
<label>
<input type="checkbox" name="test2" ng-model="testModel.item2" />Testing 2</label>
<br />
<label>
<input type="checkbox" name="test3" ng-model="testModel.item3" />Testing 3</label>
<br />
<input type="button" ng-click="submit()" value="Submit" />
<pre>{{testModel|json}}</pre>
</body>
</html>
希望这会对你有所帮助。
答案 1 :(得分:0)
好问题,我从未花时间研究过这个问题。 以下是您想要的解决方法, 但它完成了这项工作。
<input type="checkbox" name="c1" name="favoriteColors" ng-model="data.checkboxtest[1]" ng-init='data.checkboxtest[1] = true'>
<input type="checkbox" name="c2" name="favoriteColors" ng-model="data.checkboxtest[2]" ng-init='data.checkboxtest[2] = false'>
答案 2 :(得分:0)
您可以直接检查true
或false
if($scope.data.checkboxtest[1]){
//checked
}else{
//unchecked
}