AngularJS:从ngForm访问父表单?

Ans*_*Kao 1 validation angularjs

以下是通过ngForm进行AngularJS表单验证的典型示例:

<form name="parentForm">
  <div ng-form="childForm">
    <input ... />
    <span class="error" ng-if="childForm.$invalid && (childForm.$dirty || parentForm.$submitted)">...</span>
  </div>
  ...
</form>
Run Code Online (Sandbox Code Playgroud)

但是,如果你不知道这个名字,parentForm或者它不在范围内,因为它childForm是在一个指令中呢?有没有办法通过它访问它childForm

Fra*_*ijk 5

父表格可通过$$parentForm酒店从儿童表格访问.

所以你的ng-if表达将是childForm.$invalid && (childForm.$dirty || childForm.$$parentForm.$submitted)

请注意,这在Angular 1.3及更高版本中可用,而不是在1.2中.

span可以在一个具有孤立范围的指令中,制作$scope.childForm undefined.作为解决方法,您可以在指令中的范围上设置表单:

require: '^form',
link: function (formCtrl) {
  $scope[formCtrl.$name] = formCtrl;
}
Run Code Online (Sandbox Code Playgroud)