假设我们正在使用AngularJS构建通讯簿应用程序(设计示例)。
我们有一个联系人表单,其中包含电子邮件和电话号码的输入,我们想要 一个或另一个 ,但 不能同时 要求 两个 :我们只希望输入为空或无效的情况下email才需要phone输入,反之亦然。
email
phone
Angular有一个required指令,但是从文档中尚不清楚在这种情况下如何使用它。那么,我们如何有条件地需要一个表单字段呢?编写自定义指令?
required
无需编写自定义指令。Angular的文档很好,但不完整。实际上,有一个名为的指令ngRequired,它带有Angular表达式。
ngRequired
<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/