Angularjs表单验证如何在控制器内获取值

Angularjs表单验证如何在控制器内获取值,angularjs,angularjs-validation,Angularjs,Angularjs Validation,这是我的Html部分 <form name="userForm" ng-submit="submitForm()" novalidate> <!-- NAME --> <div class="form-group" ng-class="{ 'has-error' : userForm.name.$invalid && !userForm.name

这是我的Html部分

    <form name="userForm" ng-submit="submitForm()" novalidate>

                        <!-- NAME -->
                        <div class="form-group" ng-class="{ 'has-error' : userForm.name.$invalid && !userForm.name.$pristine }">
                            <label>Name</label>
                            <input type="text" name="name" class="form-control" ng-model="user.name" required>
                            <p ng-show="userForm.name.$invalid && !userForm.name.$pristine" class="help-block">You name is required.</p>
                        </div>
  <button type="submit" ng-disabled="userForm.$invalid">Submit</button>
</form>

这就是为什么我无法从Html获取值到控制器的原因

在ng submit的submitForm函数中没有传递任何参数!并在submitForm()中记录$scope.user&看看里面有什么!如果没有任何结果,则初始化$scope.user={};在submitForm()之外。然后可以进入submitForm函数$scope.user.name
 $scope.submitForm = function (userForm) {
        $scope.master = angular.copy(userForm);
        if ($scope.userForm.$valid) {
            debugger;
            console.log($scope.userForm.name);
            alert('our form is amazing');
            console.log($scope.userForm);
        }

    };

希望有帮助

你能试试下面的代码吗。我想你们忘了在按钮事件中传递值

如果不想更改代码,可以在$scope.master中找到文本框值(与代码中的值相同)


名称

您的姓名是必需的

提交 var-app=angular.module('myApp',[]); 应用程序控制器('myCtrl',函数($scope){ $scope.submitForm=函数(userForm){ $scope.master=angular.copy(userForm); 如果($scope.userForm.$valid){ 调试器; log($scope.userForm.name); 警报(userForm.name) 警惕(“我们的形式令人惊讶”); log($scope.userForm); } }; });
不要为函数定义参数。在控制器中使用$scope.user如果需要user的值,并且要获取表单,请在控制器中使用$scope.userForm

$scope.submitForm = function () {
   $scope.master = angular.copy($scope.userForm);
  .
  .
  .
}