ng-model值未传递给控制器​​功能

时间:2016-05-09 05:47:00

标签: angularjs forms checkbox angular-ngmodel

我正在使用ng-model将表单值传递给控制器​​函数。但它没有传递复选框的正确值。这是我的傻瓜。请帮帮我。

https://plnkr.co/edit/3gOuQwzt3SMNbAXplq0x?p=preview

我的模板是:

<div class="tab-pane fade " ng-repeat="(key, value) in all_user_wl_data" id="{{key}}" ng-class='{"in active":$first}'>
                        <div class="form-group">
                        <div class="row">
                            <div class="col-sm-6 col-md-6 col-lg-6" ng-repeat="(key1, value1)  in value.wl_dict">
                                <div class="checkbox checkbox-success">
                                <input id="{{key1}}" type="checkbox" name="valueis" class="form-control" ng-model="formData[key1]">
                                    <label for="{{key1}}">
                                        {{value1}}
                                </label>
                            </div>
                            </div>
                        </div>
                        </div>

         <div class="form-group">
                        <div class="row"><div class="col-lg-3 col-md-3 col-sm-3"> <label class="control-label">Group Name </label></div>
                        <div class="col-md-6 col-sm-6 col-lg-6"> <input type="text" name="regular" class="form-control" ng-model="formData.key2"></div></div><br>
                        <button type="button" class="btn btn-success" data-original-title="" title="" ng-click="createGroup(formData)">Save changes</button>

                </div>

这里当我打印console.log(formData)时,它只打印文本框的值,并且不打印复选框值。

5 个答案:

答案 0 :(得分:1)

您没有为复选框ng-model“formData”启动$ scope ..

因此,如果你将模型发送到这样的控制器,$scope.formData = []

它会在formData中添加真实价值,

[2221: true, 8233: true] 

答案 1 :(得分:1)

试试这个。在控制器中定义$scope.formData = [];

答案 2 :(得分:1)

正如大家所说。 在控制器

中设置$ scope.formData

工作plnkr

使用

$scope.formData = {}
控制器中的

https://plnkr.co/edit/53YVnVyOQzqxHQIPshkq?p=preview

答案 3 :(得分:1)

我将您的脚本更改为下方并且可以正常运行

angular.module('formExample', [])   .controller('ExampleController', ['$scope', '$http', function($scope, $http) {
                $scope.formData = {};
                $http.get('test.json')
                    .success(function(data) {
                        $scope.all_user_wl_data = data;
                        angular.forEach(data, function(areadata) {
                            $scope.usersubscribedwl = data;
                            console.log(data);
                        })
                    })

                $scope.createGroup = function() {
                    console.log($scope.formData);
                }   

}

答案 4 :(得分:1)

试试这个

<input id="{{key1}}" type="checkbox" name="valueis" class="form-control" ng-model="formData.key1[value1]">

并在控制器中

$scope.formData=[];

https://plnkr.co/