在 ng-repeat 中验证输入

Validating Input in ng-repeat

我有以下代码

<div>
    <button ng-click="myController.addEmptyStudent()">+</button>
</div>
<div ng-repeat="student in myController.students">
    <input type="text" ng-model='student['Name']" required>
    <input type="text" ng-model='student['Address']" required>
</div>

现在,因为当我点击 (+) 加号按钮时它正在创建输入框。
我想在提交之前验证没有两个 Names 相同 表格.

您似乎输入了错误的引号。您的代码

<input type="text" ng-model='student['Name']" required>

这应该是:

<input type="text" ng-model="student['Name']" required>
<input type="text" ng-model="student.Name" required> // or like that

终于找到解决办法了。
控制器的变化

    function studentNameChanged() {
        vm.duplicateNames = false;
        let studentNamesArray = students.map(item => item['studentName']);
        vm.duplicateNames = studentNamesArray.some( (item, index) => {
            return (studentNamesArray.indexOf(item) !== index)
        });
    }

HTML 文件中的更改

<div>
    <button ng-click="myController.addEmptyStudent()">+</button>
</div>
<div ng-repeat="student in myController.students">
    <input type="text" ng-change="myController.studentNameChanged()" ng-model="student['Name']" required>
    <input type="text" ng-model="student['Address']" required>
</div>
<div>
   <div style="color:red;" ng-show="myController.duplicateNames">
   Attribute Names must be different
   </div>
</div>