AngularJs:在ng内部形成 - 如果无法从控制器访问

mon*_*nda 4 javascript angularjs

我有一个表格内部ng-if指令.我想在控制器中检查表单验证$valid.

    <div ng-if="paymentMethod == 12">
    <form name="creditForm" id="cc-form" novalidate>
        <div class="form-group">
            <label for="cardNumber">Card Number</label>
            <input type="text" autofocus class="form-control" name="card_number" ng-minlength="16" id="cardNumber" ng-model="creditCardNumber" required>
            <div class="red-text" ng-messages="creditForm.card_number.$error" ng-if="creditForm.card_number.$dirty || creditForm.$submitted">
                <div ng-message="required">##global.Card_Num_Required##</div>
                <div ng-message="maxlength">##global.Card_Num_MinLength##</div>
                <div ng-message="minlength">##global.Card_Num_MaxLength##</div>
                <div ng-message="minlength">##global.Card_Num_Numeric ##</div>
            </div>
        </div>
Run Code Online (Sandbox Code Playgroud)

并尝试检查控制器中的有效表单

  if ($scope.$parent.creditForm.$valid) { 
      alert('valid');
      } else {
     alert('not valid');
 }
Run Code Online (Sandbox Code Playgroud)

但是控制器无法访问该表单.

Dis*_*sha 8

ngIf指令基于{expression}删除或重新创建DOM树的一部分.如果分配给ngIf的表达式求值为false值,则从DOM中删除该元素,否则将该元素的克隆重新插入到DOM中.你可以去throgh这个链接doc和我的答案在这里回答

您可以使用ng-show代替ng-if如果它对您可行.