Tôi muốn sử dụng tính năng xác thực biểu mẫu được tích hợp do AngularJS cung cấp. Tuy nhiên, trong biểu mẫu tôi đang sử dụng các chỉ thị tùy chỉnh mà mỗi lệnh có một phạm vi cô lập. Bởi vì điều này phần tử biểu mẫu không có quyền truy cập vào các giá trị bị ràng buộc.Xác nhận biểu mẫu AngularJS với phạm vi riêng biệt
Bất kỳ ý tưởng nào về cách sửa lỗi này?
hoặc, có thể sử dụng xác thực AngularJS mà không sử dụng biểu mẫu không?
Chỉ thị ng-minlength và ng-required không kích hoạt xác thực biểu mẫu.
<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>'
}
});
Full Plunk có thể được tìm thấy ở đây: Đây là một plunkr đó chứng tỏ vấn đề: http://plnkr.co/edit/iWyvX2?p=preview
Bạn đã trôi qua trong giá trị như một thuộc tính để chỉ thị của bạn? Bạn sẽ có thể đặt phạm vi trên giá trị cụ thể đó theo hai chiều tôi đã nghĩ. Tôi đang đưa ra giả định ở đây mặc dù; đăng một Fiddle. –
Tôi đã đăng một bài viết để minh họa vấn đề. Tôi đã chuyển thuộc tính vào chỉ thị. Bạn có thấy gì sai không? –