要在Angularjs中验证表单,需要在表单上设置“name”属性。设置“name”属性后,控制器中的设置默认值将不再起作用。
以下是一个示例: http://plnkr.co/edit/Q59yBZFIGWPMveYuez52?p=preview
在第一个表单上,我没有设置“name”属性,它将默认值设置正确,但在提交值时不会有验证对象。 在第二个表单上,我设置了“name”属性,该属性不会将默认值设置为正确,但在提交值时将具有验证对象。
这是预期的行为还是错误?
答案 0 :(得分:0)
表单控制器放在具有给定名称的$scope
中。因此,在您的情况下,模型的名称与表单的名称冲突,并发生奇怪的事情;这是一个定时炸弹,一个将来会困扰你的错误。
我喜欢给表格一个独特的名字;如果你在小提琴中尝试<form name="user2form">
,它就会奏效。 (出于这个原因,我总是将表单名称加上form
。)