我如何有条件地要求AngularJS的表单input?

假设我们正在用AngularJS构build一个地址簿应用程序(人为的例子)。

我们有一个联系人表单,用于input电子邮件和电话号码,我们希望要求一个或另一个 ,但不是两个 :我们只希望emailinput是必需的,如果phoneinput是空的或无效的,反之亦然。

Angular有一个required指令,但在这种情况下,文档中不清楚如何使用它。 那么我们如何有条件地要求一个表单域呢? 写一个自定义指令?

没有必要写一个自定义指令。 Angular的文档很好,但不完整。 事实上 ,有一个叫做ngRequired的指令,需要一个Angularexpression式。

 <input type='email' name='email' ng-model='contact.email' placeholder='your@email.com' ng-required='!contact.phone' /> <input type='text' ng-model='contact.phone' placeholder='(xxx) xxx-xxxx' ng-required='!contact.email' /> 

这是一个更完整的例子: http : //jsfiddle.net/uptnx/1/

如果你想要input一个需要的input,如果其他写入:

  <input type='text' name='name' ng-model='person.name'/> <input type='text' ng-model='person.lastname' ng-required='person.name' /> 

问候。

简单的你可以使用angular度validation,如:

  <input type='text' name='name' ng-model='person.name' ng-required='!person.lastname'/> <input type='text' name='lastname' ng-model='person.lastname' ng-required='!person.name' /> 

您现在可以只填写一个文本字段中的值。 你可以填写姓名或姓氏。 通过这种方式,您可以在AngularJs中使用条件需要的填充。