【发布时间】:2020-03-30 16:04:13
【问题描述】:
情况是这样的。我有一个角度引导下拉菜单,其中显示要选择的“组织”列表。它看起来像这样:
<button type="button" class="btn btn-primary dropdown-toggle" ng-disabled="disabled">
<span class="caret"></span>
</button>
<ul class="dropdown-menu scrollable-menu" role="menu">
<li ng-repeat="org in organizations | orderBy:'Name'"><a href="#" ng-click="pickNewOrg(org)">{{org.Name}}</a></li>
</ul>
我还有一个文本输入,允许输入组织名称,使用 Angular 的引导程序预先输入和自定义验证器,以确保输入的组织实际上在我的组织列表中。它看起来像这样:
<input name="organization"
type="text"
ng-model="activity.org"
typeahead="org as org.Name for org in organizations | filter:$viewValue"
valid-organization/>
问题是:如果将文本输入到输入中(验证器指令所在的位置),验证工作正常,但如果从下拉列表中选择对象,则不会调用验证。因此,如果输入了不正确的组织,则有效性设置为 false,但如果随后从菜单中单击组织,则它仍然为 false,未经验证。由于在下拉列表中单击的任何内容都是有效的,我想知道如何在单击按钮时重新使用验证器?或者也许另一种方法会更好?
【问题讨论】:
-
如果将
valid-organization指令添加到下拉列表会发生什么? -
没什么,当点击下拉菜单中的按钮时,模型在范围内发生变化,因此输入中的值会自动更新,但不会触发验证器这样做。我想知道是否没有办法强制表单进行自我验证。
标签: angularjs validation angular-ui-bootstrap