我想使用AngularJS提供的內置表單驗證。但是,在我使用自定義指令的表單中,每個指令都有一個隔離範圍。因此,表單元素無法訪問綁定值。AngularJS表單驗證隔離範圍
任何想法如何解決這個問題?
或者,是否有可能使用AngularJS驗證而不使用表單?
ng-minlength和ng-required指令不觸發表單驗證。
<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>'
}
});
全部普拉克可以在這裏找到:下面是一個說明該問題的plunkr:http://plnkr.co/edit/iWyvX2?p=preview
你有在傳遞價值,以你的指令屬性?您應該能夠將該特定值的範圍設置爲雙向我會想到的。儘管我在這裏做出假設;張貼小提琴。 –
我已經發布了一個plunkr來說明這個問題。我已將該屬性傳遞給該指令。你能看到有什麼不對嗎? –