Javascript angularjs中另一个控制器的表单验证

Javascript angularjs中另一个控制器的表单验证,javascript,angularjs,Javascript,Angularjs,我有两个控制器:btnController和formController。我正在尝试从另一个控制器操作提交表单。问题是,仅当表单验证有效时才应调用控制器中的函数。现在,如果用户试图在不写任何内容的情况下提交表单,则会调用submit函数 我怎样才能修好它 我的代码 <div ng-app='app'> <div class='header' ng-controller='btnController'> <button ng-click='su

我有两个控制器:btnController和formController。我正在尝试从另一个控制器操作提交表单。问题是,仅当表单验证有效时才应调用控制器中的函数。现在,如果用户试图在不写任何内容的情况下提交表单,则会调用submit函数

我怎样才能修好它

我的代码

<div ng-app='app'>
    <div class='header' ng-controller='btnController'>
        <button ng-click='submit()'>
            Submit Form
        </button>
    </div>

    <div class='container' ng-controller='formController'>
        <h2>Form</h2>
        <form id='myform'>
            <input ng-model='name' placeholder='name' required/>
            <span style="color:red" ng-show="myform.name.$dirty &&      myForm.name.$invalid">
                <span ng-show="myform.name.$error.required">Username is required.</span>
            </span>
        </form>
    </div>
</div>


(function(){
    var app=angular.module('app',[]);
    app.controller('btnController',function($scope){
        $scope.submit=function(){
            angular.element(document.getElementById('myform')).scope().submit();
        }
    });

    app.controller('formController',function($scope){
        scope.name;
        $scope.submit=function(){
            alert($scope.name);
        }
    });
})();

提交表格
形式
用户名是必需的。
(功能(){
var-app=angular.module('app',[]);
应用控制器('btnController',函数($scope){
$scope.submit=function(){
元素(document.getElementById('myform')).scope().submit();
}
});
app.controller('formController',函数($scope){
范围.名称;
$scope.submit=function(){
警报($scope.name);
}
});
})();
以下是示例编辑:

“formController”中的submit()函数只有在表单有效时才会被调用:

app.controller('btnController',function($scope){
    $scope.submit=function(){
      var elementScope = angular.element(document.getElementById('myform')).scope();
      if(elementScope.myform.name.$valid)
         elementScope.submit();
    }
});
新建Jsfiddle

编辑:

“formController”中的submit()函数只有在表单有效时才会被调用:

app.controller('btnController',function($scope){
    $scope.submit=function(){
      var elementScope = angular.element(document.getElementById('myform')).scope();
      if(elementScope.myform.name.$valid)
         elementScope.submit();
    }
});

新建Jsfiddle

这不是我的问题。请看JSFIDLE示例submit调用来自另一个控制器,并且不在表单中。因此,您希望表单控制器中的submit()函数仅在表单有效时才会被调用,对吗?是的。我还想显示验证错误,我看到了,但它没有显示所需的验证错误。谢谢,这不是我的问题。请看JSFIDLE示例submit调用来自另一个控制器,并且不在表单中。因此,您希望表单控制器中的submit()函数仅在表单有效时才会被调用,对吗?是的。我还想显示验证错误,我看到了,但它没有显示所需的验证错误。非常感谢。