将原始输入发送到角度控制器

时间:2016-02-12 07:28:04

标签: javascript html angularjs forms

我在我的角度应用程序中使用了一些复选框,默认情况下会进行检查。这些复选框处于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;

3 个答案:

答案 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'>

我在这里找到答案How to check if any Checkbox is checked in Angular

答案 2 :(得分:0)

您可以直接检查truefalse

if($scope.data.checkboxtest[1]){
  //checked
}else{
   //unchecked
}