Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Angular JS查看模型验证?_Javascript_Angularjs_Validation - Fatal编程技术网

Javascript 使用Angular JS查看模型验证?

Javascript 使用Angular JS查看模型验证?,javascript,angularjs,validation,Javascript,Angularjs,Validation,作为一名从asp.net mvc转向angular js的开发人员,我对angular js验证的默认验证实现感到失望。看起来angular默认在视图中实现客户端验证,这违反了关注点分离(imho)规则 就我个人而言,我更喜欢在viewmodel而不是view中实现验证规则。不确定这是否被社区广泛采用和推荐 所以我的问题是: 1) 在angular js中验证的默认实现是否比将其分离到视图模型中更可取?? 2) 是否有任何现有的Angle库在单独的层中实现验证逻辑 我期待着这样的事情 model

作为一名从asp.net mvc转向angular js的开发人员,我对angular js验证的默认验证实现感到失望。看起来angular默认在视图中实现客户端验证,这违反了关注点分离(imho)规则

就我个人而言,我更喜欢在viewmodel而不是view中实现验证规则。不确定这是否被社区广泛采用和推荐

所以我的问题是:
1) 在angular js中验证的默认实现是否比将其分离到视图模型中更可取?? 2) 是否有任何现有的Angle库在单独的层中实现验证逻辑

我期待着这样的事情

model.User = {
    Name: { validate: required, errorMessage: 'Name is required'},
    Price: {
        validate: number, errorMessage: 'Price should be number',
        validate: number.min = 0, number.max = 100, errorMessage = 'Price should be between 0 and 100',
    }
}

<input ng-model="User.Name" name="Name">
<input ng-model="User.Price" name="Price>
model.User={
名称:{validate:required,errorMessage:'Name is required'},
价格:{
验证:编号,错误消息:“价格应为编号”,
验证:number.min=0,number.max=100,errorMessage='价格应介于0和100之间',
}
}

Angular2有
模型驱动表单
,您可以在其中将验证逻辑引入控制器


Angular的部分优点在于它使用了指令。一个你可能感兴趣的是ngMessages。你有什么问题吗?或者只是发泄一下?看起来你就是这么想的want@BrianBaker我已经编辑了这篇文章以包含我的问题。是的,我们可以利用指令、过滤器等来实现它。但最基本的问题是,如果没有支持此功能的现有angular库,我们需要重新考虑和思考为什么其他人不单独从视图中实现验证逻辑,为什么在实现之前angular js中没有这种做法,因为我们仍处于设计阶段。@pixelbits不幸的是,不需要。我们考虑的是完全从视图中删除ng minlength、ng maxlength、ng message等(在编码期间),但它应该在页面初始加载期间从视图模型生成。在angular中,您可以声明性地将验证指令放在输入控件上。然后可以绑定到作用域上的某些模型属性,即form.$error或form.name.$error属性。根据$error对象的状态,可以使用ngMessage呈现任何类型的消息。在我看来,这与MVC的处理方式非常相似。谢谢你的回复。至少我们知道它现在得到了支持。至少,事实证明这仍然是一种更好的方法。但我们将使用angular 1.4进行开发。