2012-10-05 44 views
7

Tôi đang đánh giá AngularJS và cho đến nay tôi rất nhiệt tình về nó. Nhưng có điều gì đó mất tích trên mặt trận xác nhận: các tùy chọn có sẵn, chẳng hạn như built-in mechanismsAngularUI initiative, thực hiện xác nhận thông qua chỉ thị và, như vậy, mỗi xác nhận cần được khai báo trong giao diện:Chiến lược xác thực với AngularJS

<form ng-controller="SomeController"> 
    <!-- Notice the 'required' attribute directive below: --> 
    <input type="text" ng-model="user.name" name="uName" required /> 
</form> 

Trong ví dụ này, chế độ xem xác định rằng user.name là bắt buộc. Nó giống như nói xem xem định nghĩa hình dạng thích hợp của mô hình. Không phải là nó hơi ngược? Không nên xem phản ánh các tiểu bang, bao gồm cả lỗi nói khi nó là trường hợp?

Tôi có nhầm lẫn không? Tôi tự hỏi liệu có thể áp dụng bất kỳ trình xác nhận nào trong bộ điều khiển , báo hiệu dữ liệu của mô hình là hợp lệ/không hợp lệ và cập nhật chế độ xem tương ứng (sơn điều khiển biểu mẫu có màu đỏ, hiển thị thông báo lỗi, xóa các lỗi trước đó, v.v.). Tôi giả sử AngularJS là đủ mạnh cho việc này, nhưng trong các tài liệu và mẫu cho đến nay tôi chỉ không nhìn thấy bất cứ điều gì như tôi đã mô tả ở trên. Cảm ơn!

+0

'required' là thuộc tính HTML5. http://html5doctor.com/html5-forms-introduction-and-new-attributes/ Ngoài ra, bạn có thể đặt thuộc tính 'input'' type' thành những thứ như 'email, tel, date, url, number' và chúng sẽ xác thực cho phù hợp. –

+0

Ngoài ra tôi chưa bao giờ sử dụng AngularUI Validate, tôi vừa sử dụng xác thực AngularJS thẳng với HTML5 và nó hoạt động hoàn toàn tốt. Xác nhận AngularUI là để thêm xác thực biểu thức tùy chỉnh vào một trường. –

Trả lời

1

Tôi đoán tất cả về quan điểm của nó. Cách tôi nhìn thấy nó là, bạn đang định nghĩa một khung nhìn có chứa một biểu mẫu và biểu mẫu đó chứa một đầu vào của văn bản kiểu. Đây là kiểu nhập văn bản mà bạn đang đánh dấu theo yêu cầu. Nếu bạn lưu ý, góc không quan tâm nếu văn bản là user.name hoặc user.age hoặc bất kỳ thứ gì khác. Nó chỉ kết hợp đầu vào văn bản đó với yêu cầu. Vì vậy, nó chỉ xác nhận rằng đầu vào văn bản và mô hình liên kết với mô hình đó là kết quả cuối cùng (nơi mà giá trị đi vào nếu quá trình xác thực đi!).

Có một cái nhìn tại

http://docs.angularjs.org/guide/forms

cho xác thực hình thức tùy chỉnh, nếu bạn muốn được làm kiểm chứng thực mà không phải là những cái mặc định.

Vì bạn đã biết chế độ xem được tạo trước (cho phép gọi nó vào thời gian biên dịch!), Bạn có thể liên kết tất cả trình xác nhận trong khung nhìn và do đó sẽ không phải thực hiện điều đó trong bộ điều khiển (có thể là để chạy xác thực thời gian!).

Các vấn đề liên quan