Chciałbym użyć wbudowanego sprawdzania formularza dostarczonego przez AngularJS. Jednak w formularzu używam dyrektyw niestandardowych, z których każdy ma zasięg izolowania. Z tego powodu element formularza nie ma dostępu do powiązanych wartości.Zatwierdzenie formularza AngularJS z izolowanym zakresem
Każdy pomysł, jak to naprawić?
lub, czy można użyć sprawdzania poprawności AngularJS bez użycia formularza?
Wymagane dyrektywy ng-minlength i ng nie uruchamiają sprawdzania formularza.
<div ng-app="myApp" ng-controller="myCtrl">
<form name="myForm" novalidate>
<do-something ng-model="variable"></do-something>
<h4 data-ng-if="myForm.myElement.$error.required">Please enter something</h4>
<h4 data-ng-if="myForm.myElement.$error.greaterThanOne">Please enter a value greater than 1</h4>
<h4 data-ng-if="myForm.myElement.$error.minLength">Please enter something longer than 1 digit</h4>
{{myForm.myElement.$error}}
</form>
</div>
var app = angular.module('myApp', []);
app.controller('myCtrl', function ($scope) {
});
app.directive('doSomething', function() {
return {
restrict: 'E',
require: '?ngModel',
scope: {
model: '=ngModel'
},
template:
'<div>' +
' <input name="myElement" ng-model="model" ng-required ng-minlength="1" />' +
'</div>'
}
});
Pełna upadać można znaleźć tutaj: Oto plunkr który demonstruje problem: http://plnkr.co/edit/iWyvX2?p=preview
Czy zdałeś wartości jako atrybut do swojej dyrektywy? Powinieneś być w stanie ustawić zakres tej konkretnej wartości jako dwukierunkową, o której myślałem. Zakładam tu jednak pewne założenia; opublikuj skrzypce. –
Umieściłem plunkr, aby zilustrować problem. Przekazałem ten atrybut do dyrektywy. Czy widzisz coś nie tak? –