首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不应用ng-class

不应用ng-class
EN

Stack Overflow用户
提问于 2013-11-28 16:23:58
回答 1查看 235关注 0票数 1

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

代码语言:javascript
复制
<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类?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-28 16:26:40

您还必须使用表单名进行限定:

代码语言:javascript
复制
<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>

<form>有自己的指令,因此它明白,如果它看到一个表单,它应该将一个对象添加到命名相同的当前作用域。在这种情况下,emailForm。因此,在控制器中,您可以将email字段定位为$scope.emailForm.email

由于您正在专门寻找required,所以您也可以使用以下内容:

代码语言:javascript
复制
ng-class="{ error: emailForm.email.$error.required }"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20270777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档