在 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>
我有以下代码
<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>