我试图警告用户输入重复的条目。 输入由与ng-repeat相关联的模型构成。用户可以使用添加按钮添加输入框,并使用每个输入上的按钮删除它们。
<div ng-form="inputForm" ng-repeat="system in form.systems">
<input name="systemNameInput"
index="{{$index}}"
required
system-check
ng-model="system.systemName"></input>
<button ng-click="removeSystemName($index)">Delete</button>
</div><!-- End of ngRepeat -->
我使用两个模型,一个是form.systems,另一个是user.systems。另一个指令(不包括在内,使用$ asycValidators)启动对后端的rest调用,以验证系统是否存在(只是或多或少的ping),它返回一个被添加到user.systems的对象,因此只有表单持有form.systems。[index] .systemName。
我正在研究一个带有form.systems的systemCheck指令,找出是否存在重复并相应地验证from(使用$ validators)。
这有效,但有一些错误。由于我的user.systems对象由后端更新,因此在指令运行时不会填充它(因为$ validators总是在$ asycValidators之前运行)。此外,我的form.systems模式一旦你开始输入就变空(因为它击中$ asycValidator并变为无效,这是正确的)。
那么,我可以用什么对象来判断是否有重复?我需要在输入后立即查看ngRepeat创建的每个输入框中的内容,以便我可以解析它们并查找副本。
我做了一个快速的jsFiddle,虽然我的$ validator由于某种原因没有在它上面工作,它应该很好地了解我在本地的内容。