属性值中的连字符导致AngularJs验证中断

时间:2014-02-04 13:22:43

标签: javascript html angularjs

我刚注意到如果我在表单名称属性或输入的名称属性中有连字符,则AngularJS验证不起作用。

如果我尝试验证字段

,这不起作用
<form name="signup-form">
</form>

以下作品完美无缺

<form name="signupform">
</form>

有人可以解释为什么AngularJs在第一种情况下不起作用吗?如果我们要“ - ”工作,我们怎么能这样做?

2 个答案:

答案 0 :(得分:4)

问题在于,您放入name属性的名称也是在scope上发布表单的JavaScript属性的名称(例如,在控制器中使用它)。但是包含连字符的属性名称不是有效的JavaScript。我很确定没有办法解决它。

答案 1 :(得分:0)

可以这样做......当在控制器中引用表单时,您可以使用数组表示法来执行此操作。 e.g。

$scope['my-form']['my-input'];

在模板中绑定时,您也可以使用数组表示法,如下所示:

<div ng-if="this['my-form']['my-input'].$invalid">There is an error</div>