Проверить динамические входы в директиве angularjs
Я пытаюсь проверить несколько входных данных, динамически генерируемых счетчиком. Проблема в том, что при вызове функции, которая проверяет, верна она или нет (с помощью ui-validate), кажется, что она взяла только одно значение и применила его ко всем сразу. Я не знаю, что происходит, я нуб? Как я могу это решить?
Вот мой html-код:
<div ng-repeat="(index) in countIterator track by index" ng-model="countIterator">
<div class="form-group col-sm-6" ng-class="{'has-error': !validProduct}"
title="Product{{index + 1}}">
<label for="dataProduct{{index + 1}}" class="control-label required">Products</label>
<input name="dataProduct{{index + 1}}" type="number" min="0"
class="form-control" ng-model="data[index].product" required
ui-validate=" 'validators.validateProducts($value, index+1)' " />
<div ng-show="!validProduct" class="error">there's an error</div>
</div>
</div>
А вот код моей директивы angularjs:
angular.module('app.pages.mypage')
.directive('productsDetails', function($compile) {
return {
scope: {
dataProduct: '=ngModel',
required: '=ngRequired'
},
templateUrl: 'app/pages/mypage/directives/products.html',
replace: true,
controller: function($scope, $rootScope, $http, url) {
$scope.validators = {
validateProducts: function(value, indexNumber) {
$scope.validProduct = false;
if((typeof value !== 'undefined') && (value !== '')) {
if (indexNumber === 1) {
$scope.validProduct = true
} if (indexNumber === 2) {
$scope.validProduct = true
} if (indexNumber === 3) {
$scope.validProduct = true
}
return $scope.validProduct;
}
else {
if (indexNumber === 1) {
$scope.validProduct = false
} if (indexNumber === 2) {
$scope.validProduct = false
} if (indexNumber === 3) {
$scope.validProduct = false
}
return $scope.validProduct;
}
}
};
}
}