ng类不适用

ng-class is not applied

本文关键字:不适用 ng      更新时间:2023-12-23

我正在尝试使用AngularJS验证表单。这是我的表格:

<form ng-controller="LoginCtrl" role="form" class="form-horizontal">
    <div class="form-group">
        <label for="email" class="col-sm-2 control-label">Email</label>
        <div class="col-sm-10">
            <input required type="email" name="email" ng-model="email" class="form-control" ng-class="{ error: email.$invalid }" id="email">
        </div>
    </div>
</form>

ng类从未被应用。我尝试过电子邮件$有效,电子邮件$无效和电子邮件$错误控制器除了登录到控制台之外什么都不做,所以我知道它被调用了。当我设置$scope.email = 'asd@asd.com'硬编码时,它是正确设置的。

当我没有输入值或输入无效字符串时,为什么不应用我的ng类?

您还必须符合表单名称:

<form ng-controller="LoginCtrl" name="emailForm" role="form" class="form-horizontal">
    <div class="form-group">
        <label for="email" class="col-sm-2 control-label">Email</label>
        <div class="col-sm-10">
            <input required type="email" name="email" ng-model="email" class="form-control" ng-class="{ error: emailForm.email.$invalid }" id="email">
        </div>
    </div>
</form>

Angular对<form>有自己的指令,因此理解如果它看到一个表单,它应该向当前范围添加一个同名的对象。在这种情况下,CCD_。因此,在控制器中,您可以将email字段寻址为$scope.emailForm.email

因为,你是专门寻找required,你也可以使用这个:

ng-class="{ error: emailForm.email.$error.required }"