javascript - AngularJs:如果无法从 Controller 访问,则在 ng 中形成表单

标签 javascript angularjs

我在 ng-if 指令中有一个表单。我想使用 $valid 检查 Controller 中的表单验证。

    <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>

并尝试检查 Controller 中的有效表单

  if ($scope.$parent.creditForm.$valid) { 
      alert('valid');
      } else {
     alert('not valid');
 }

但是无法从 Controller 访问该表单。

最佳答案

ngIf 指令根据 {expression} 删除或重新创建 DOM 树的一部分。如果分配给 ngIf 的表达式的计算结果为假值,则该元素将从 DOM 中删除,否则该元素的克隆将重新插入到 DOM 中。 你可以通过这个链接doc还有我在这里的回答answer

如果可行,您可以使用 ng-show 代替 ng-if。

关于javascript - AngularJs:如果无法从 Controller 访问,则在 ng 中形成表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40648638/

相关文章:

javascript - Angularjs - 使用数据库中的新数据重新加载范围

javascript - clientWidth 检测关闭 15px,可能是由于滚动条

javascript - Webpack Manifest Hashing - vendor 未进行哈希处理

javascript - 排队 promise

javascript - Angular UI Datepicker 限制每月天数

javascript - Protractor + Angular 误差 - 元素在点处不可点击

angularjs - 如何在 Jasmine 测试中注入(inject) Controller 依赖项?

javascript - 在 jQuery 中使用 .append 提交值 $_POST 变量包含火狐中的数据。但在 chrome 上 $_POST 变量为空

javascript - 对于调用另一个异步函数的异步函数, Jest 测试失败

javascript - 兑换金额错误