Javascript 使用具有多个条件的ng类

Javascript 使用具有多个条件的ng类,javascript,html,angularjs,Javascript,Html,Angularjs,我想根据函数的结果在一个跨度上设置3个不同类中的1个。下面的javascript似乎返回了正确的值,但是我的标记总是显示“require matched”类。 如何编写ng类指令来适应这种情况 HTML: 这是在Angular中不正确地使用验证ctrl.$validators.status应返回布尔值:true表示有效结果(required matched,术语中为false),否则(required not matched)。如果验证无效,ngModelController将收到布尔标志,您可

我想根据函数的结果在一个跨度上设置3个不同类中的1个。下面的javascript似乎返回了正确的值,但是我的标记总是显示“require matched”类。 如何编写ng类指令来适应这种情况

HTML:


这是在Angular中不正确地使用验证
ctrl.$validators.status
应返回布尔值:
true
表示有效结果(
required matched
,术语中为
false
),否则(
required not matched
)。如果验证无效,
ngModelController
将收到布尔标志,您可以在视图中使用该标志来设置控件样式或显示错误消息

require empty
您所拥有的应该由
required
验证器处理,而不是让
status
验证器也这样做

所以你可能想要的是:

ctrl.$validators.status = function(value) {
    if (value) {
        var expression = /^[-\w]+$/;
        return expression.test(value.trim());
    }
    return false;
}
或者指令可以尽可能简洁

ctrl.$validators.status = function(value) {
    return value && /^[-\w]+$/.test(value.trim());
}
HTML中的相应字段将是(前提是指令名称为
status
):


该字段为必填字段。
该值应与模式匹配。

演示:

在Angular中使用验证是不正确的
ctrl.$validators.status
应返回布尔值。@处理此问题的正确方法是什么?请给我五分钟时间准备一个完整的示例,说明您需要什么。谢谢,您能提供一个使用ng class而不是ng show的示例吗?仍然无法确定何时为我的标记提供哪个类您真的想要这些类吗?我的意思是,您可以自动获得验证类,该类允许您按照您想要的方式设置表单和字段的样式。它们是
ng无效状态
(要求不匹配)和
ng无效状态
(要求为空)。默认状态对应于
require empty
。我正在尝试使用为三种状态中的每种状态提供不同图标的类来设置span元素的样式:value为空、value与表达式匹配、value与表达式不匹配。所以我确实需要我的自定义类,因为它不仅仅是在错误或有效状态下设置表单字段的样式。因此,您可以更一般地使用
,我想这样做:
,其中status是操作数。这可能吗?
ctrl.$validators.status = function(value) {
    if (value) {
        var expression = /^[-\w]+$/;
        return expression.test(value.trim());
    }
    return false;
}
ctrl.$validators.status = function(value) {
    return value && /^[-\w]+$/.test(value.trim());
}
<input type="text" name="test" ng-model="testModel" status required>

<div class="error" ng-show="testForm.test.$error.required">The field is required.</div>
<div class="error" ng-show="testForm.test.$error.status">The value should match pattern.</div>