form。$ angular中的有效未定义

时间:2017-06-28 06:22:16

标签: angularjs validation angular-ng-if

当我使用角度形式验证时,它会在角度控制器中给出未定义的错误。

我的HTML视图

Index.xhtml(主视图)

<div>
   <select ng-model="val">
      <option value="A"></option>
      <option value="B"></option>
      <option value="C"></option>
   </select>

      <div ng-if="item.value=='A'">
           @Html.Partial("A")
       </div>

       <div ng-if="item.value=='B'">
           @Html.Partial("B")
       </div>

       <div ng-if="item.value=='C'">
           @Html.Partial("A")
       </div>
 </div>

A.chtml(局部视图)

<div>
   <form name="formA" ng-submit="A();">
     <div ng-model="model1" required>
     </div>
     <input type="submit" value="Add"/>
   </form>
</div>

B.chtml(局部视图)

<div>
   <form name="formC" ng-submit="B();">
     <div ng-model="model2" required>
     </div>
     <input type="submit" value="Add"/>
   </form>
</div>

JS档案

$scope.A = function(){
           if($scope.formA.$valid){
            }
    };

首先,我在主视图下拉列表中选择值A,然后插入数据并单击“添加”按钮。然后它将检查表单验证。如果验证为真,则功能成功。 但, 之后我选择值C i下拉并尝试添加插入值,角度控制器无法识别表单名称。它给出了未定义的错误。

如果在选择A后选择B值,则功能执行无误。我试着在设置

之后
 $scope.formA.$setPristine();
 $scope.formA.$setUntouched();

但它对这个错误没有任何影响。

任何人都可以帮助我吗? 关于内部功能的任何解释?

1 个答案:

答案 0 :(得分:0)

你必须在formA上加上$ scope前缀,这很可能是问题