Chúng tôi đã giải quyết các hình thức phản ứng trong một trong những bài học trước đó,
nơi chúng tôi đã thực hiện hai bài tập đối phó với các hình thức phản ứng,
cách chúng tôi tạo ra chúng,
và sau đó cũng thực hiện một số xác nhận hình thức cơ bản trên các hình thức phản ứng.
Chúng ta sẽ tiếp tục với chủ đề trong bài học này,
bởi vì các hình thức phản ứng như tên của nó,
có cái gì đó để làm với lập trình phản ứng như bạn có thể đã mong đợi.
Bây giờ, biểu mẫu phản ứng cũng cho phép bạn xem các thay đổi trong các giá trị của các phần tử biểu mẫu,
sử dụng một quan sát được rằng Angular làm cho sẵn có được gọi là ValueChanges.
Chúng tôi sẽ sử dụng ValueChanges có thể quan sát được trong bài tập này,
để theo dõi các thay đổi đối với các giá trị của các
yếu tố biểu mẫu khác nhau của họ và sau đó ngay lập tức kích hoạt xác nhận biểu mẫu.
Trong bài tập này, chúng tôi sẽ làm hầu hết các hình thức xác nhận trong
mã chứ không phải là trong bản thân mẫu,
như chúng tôi đã làm với xác nhận hình thức lò phản ứng trong bài tập thứ hai của các hình thức phản ứng.
Đi liên lạc với t.component.tsfile,
chúng tôi sẽ cập nhật biểu mẫu phản ứng mà chúng tôi đã tạo ra ở đây,
bằng cách thêm một vài Validators cho một số các lĩnh vực này.
Vì vậy, ở đây bạn thấy rằng cho họ đầu tiên và
số điện thoại và email chúng tôi đã thêm các Validators yêu cầu.
Đối với tên đầu tiên và cuối cùng,
tôi sẽ thêm vào một vài Validators cho chiều dài
tối thiểu và chiều dài tối đa.
Bây giờ, nếu bạn có nhiều hơn một Validator trong biểu mẫu phản ứng của
bạn, bạn phải khai báo chúng bằng cách sử dụng một mảng trong đó.
Vì vậy, điều này phải được bao bọc bên trong một mảng ở đây.
Vì vậy, bạn thấy rằng tôi đã kèm theo Validator yêu cầu bên trong một mảng.
Tôi sẽ thêm vào một Validators, MinLength Validator.
Vì vậy, đối với chiều dài tối thiểu, tôi sẽ chỉ định hai là chiều dài tối thiểu,
vì vậy tên đầu tiên phải chứa ít nhất hai ký tự.
Ngoài ra chiều dài tối đa mà tôi sẽ
thêm là 25 ký tự.
Vì vậy, ở đây bạn thấy rằng bây giờ cho tên đầu tiên chúng tôi có ba Validations khác nhau,
tất cả được bao bọc trong một mảng ở đây.
Validators yêu cầu, Validators MinLength,
và Validators MaxLength đây, 25.
Vì vậy, tôi sẽ làm điều tương tự cũng cho họ của tôi.
Vì vậy, hãy để tôi sao chép toàn bộ Validators ray ở đây,
và sau đó thay thế cái này với bộ Validators đó.
Bây giờ ngoài ra, đối với số điện thoại,
như bạn sẽ nhớ lại trong phiên bản trước của biểu mẫu,
số điện thoại đã sẵn sàng chấp nhận ngay cả bảng chữ cái,
nhưng điều đó là không chính xác.
Số điện thoại thường là số.
Vì vậy, đây là nơi chúng tôi sẽ sử dụng một Validator
gọi là mẫu Validators.
Vì vậy, các mẫu Validator cho phép chúng ta xác định một mẫu cho
các giá trị được nhập vào đó phần tử hình thức cụ thể,
và sau đó kiểm tra để đảm bảo rằng giá trị theo mẫu được chỉ định.
Vì vậy, ở đây mô hình mà chúng ta sẽ sử dụng là giá trị
nên chứa chỉ số giữa 0 và 9.
Để thêm mẫu,
chúng ta cần phải làm điều đó trong tập tin mẫu như chúng ta sẽ thấy trong một thời gian ngắn.
Tương tự như vậy, đối với email,
tôi cũng sẽ có một Validator gọi là Validator email.
Vì vậy, chúng tôi sẽ thêm vào email Validators.
Điều này cũng có nghĩa là chúng ta cần phải thêm vào một thuộc tính
được gọi là email vào đầu vào trong tập tin mẫu của chúng tôi.
Bây giờ, với những thay đổi này xác thực biểu mẫu của tôi bây giờ đã trở nên mạnh mẽ hơn trong bài tập này.
Bây giờ, khi các hình thức kinh nghiệm thay đổi trong bất kỳ của nó hình thức yếu tố,
sau đó các Angular framework cung cấp một quan sát được gọi là ValueChanges quan sát.
Vì vậy, tôi sẽ sử dụng ValueChanges quan sát được trên mẫu phản hồi của tôi.
Vì vậy, ValueChanges quan sát được.
Vì vậy, ValueChanges quan sát được bây giờ có thể được đăng ký trong phương pháp cụ thể này.
Vì vậy, khi chúng tôi tạo ra các hình thức chính nó,
chúng tôi sẽ đăng ký với ValueChanges quan sát được ở đây.
Bây giờ, khi ValueChanges,
do đó, bằng cách đăng ký để quan sát này,
trong đăng ký tôi sẽ chỉ định những gì nên được thực hiện khi ValueChanges.
Vì vậy, khi ValueChanges tôi sẽ có được một số dữ liệu ở đây,
từ trang trại để chỉ ra
mà yếu tố hình thức cụ thể đã trải qua sự thay đổi trong giá trị.
Sau đó, khi điều đó xảy ra,
tôi sẽ kích hoạt một phương pháp địa phương mà tôi sẽ thực hiện được gọi là onValueChanged,
và sau đó cung cấp dữ liệu đó như là một tham số để phương pháp này.
Bây giờ, bên trong phương pháp onValueChanged này,
tôi sẽ bắt đầu xác nhận biểu mẫu,
và sau đó xác định một cách thích hợp các thông báo lỗi hình thức dựa trên những gì
đối tượng dữ liệu này mà tôi có được ở đây sẽ chỉ định cho tôi.
Ngoài ra, khi tôi lần đầu tiên tạo biểu mẫu,
tôi sẽ gọi phương pháp onValueChanged mà không có bất kỳ tham số nào,
và điều này sẽ được sử dụng để
thiết lập lại các thông điệp xác nhận biểu mẫu.
Bây giờ, làm thế nào để tạo thông báo xác thực biểu mẫu?
Để làm điều đó, tôi sẽ xác định thông điệp xác nhận hình thức của tôi hoàn toàn trong mã ở đây.
Sau đó, thông qua mã,
tôi sẽ thích ứng với các thông điệp xác nhận hình thức,
và sau đó sẽ được sử dụng để hiển thị các thông báo lỗi trong mẫu của tôi chính nó.
Vì vậy, để làm điều đó, những gì tôi sẽ làm là để thêm một vài đối tượng JavaScript ở đây.
Một trong những đối tượng JavaScript mà tôi sẽ thêm được đặt tên là lỗi biểu mẫu.
Vì vậy, đây là một đối tượng JavaScript đơn giản
sẽ chứa tất cả các lỗi cho các hình thức cụ thể ở đây.
Vì vậy, trong các lỗi mẫu,
tôi sẽ sử dụng bốn trường khác nhau
, tên, họ.
Vì vậy, như bạn nhớ lại,
chúng tương ứng với bốn yếu tố hình thức mà trên đó tôi đang thực hiện xác nhận hình thức,
số điện thoại và email.
Bây giờ, tại sao tôi định nghĩa đối tượng JavaScript này ở đây?
Bây giờ, đối tượng JavaScript này như bạn thấy chứa bốn yếu tố ở đây.
Bây giờ, bất cứ khi nào tôi thực hiện xác nhận biểu mẫu,
nhớ lại rằng tôi đã chỉ định rằng
tôi sẽ tạo ra một phương pháp mới được gọi là onValueChange.
Bên trong OnValueChange, cách mã được viết là,
nếu phát hiện bất kỳ lỗi nào,
một chuỗi chứa thông điệp tương ứng với
lỗi đó sẽ được thêm vào đối tượng JavaScript này.
Vì vậy, theo cách này trong mã của tôi,
tôi có thể thực hiện các hình thức xác nhận.
Bây giờ, ngoài việc này,
bây giờ tôi sẽ xác định một vài thông điệp xác nhận.
Bây giờ, mô hình làm việc đặc biệt này,
tôi đã học được bằng cách đọc tài liệu về xác nhận biểu mẫu trên trang web angular.io.
Vì vậy, họ có một tài liệu toàn bộ về làm thế nào để thực hiện xác nhận hình thức và một liên kết đến đó
có sẵn trong các tài nguyên bổ sung của
chương này và cũng là các chương trước về hình thức góc cạnh.
Vì vậy, trong tài liệu cụ thể đó họ
quy định điều này như là một cách để thực hiện xác nhận biểu mẫu và tôi thấy điều đó rất trực quan.
Vì vậy, tôi cũng áp dụng cùng một mô hình để thực hiện xác nhận biểu mẫu trong mã.
Vì vậy, cùng với ở đây,
tôi sẽ xác định các thông điệp xác nhận cho tất cả các lĩnh vực có thể ở đây.
Vì vậy, đối với trường tên đầu tiên,
tôi sẽ xác định một vài thông điệp xác nhận ở đây, vì vậy tôi sẽ nói,
“bắt buộc” và sau đó nói,
“tên là bắt buộc” như thế này,
tôi sẽ thêm vào một vài thông điệp xác nhận
ở đây và nói,
“Tên phải có
ít nhất 2 ký tự dài” và sau đó tôi sẽ cũng thêm,
“chiều dài tối đa” và thông báo tương ứng sẽ là,
“Tên đầu tiên không thể lớn hơn 25".
Nếu bạn có một cái tên mà chạy vào 25 ký tự,
bạn phải thực sự nguyền rủa cha mẹ của bạn cho điều đó, tin tôi đi,
một trong những tên đệm của tôi là một tên đệm dài,
và tôi không sử dụng một cách rõ ràng trong tài liệu của tôi.
Nhưng, tôi có thể hiểu nỗi đau,
nếu bạn có một tên dài lớn hơn 25 ký tự.
Những người từ một số bang ở miền Nam Ấn Độ có tên dài,
bang của tôi bao gồm, hey, chúng ta
hãy vui vẻ trong khi chúng ta đang ở đó.
Được rồi, tôi cũng sẽ bao gồm cùng một thứ cho họ.
Vì vậy, tôi sẽ chỉnh sửa điều này
và chỉ định điều tương tự như họ.
Vì vậy, như bạn thấy trong mã, bạn có thể chỉ định một tập hợp các thông báo lỗi.
Bây giờ, nếu bạn thêm xác nhận mới vào biểu mẫu của
bạn, tất cả những gì bạn cần làm là,
đến đây và thêm vào thông báo lỗi mới vào
đối tượng JavaScript này và mã của bạn sẽ hoạt động tốt, như vậy.
Vì vậy, đó là lợi thế của việc sử dụng mô hình này để thiết kế xác nhận của bạn trong mã.
Tiếp tục, hãy để tôi xác định xác nhận số điện thoại và
xác nhận hai số điện thoại sẽ xảy ra là “bắt buộc”.
Vì vậy, tôi sẽ chỉ sao chép “bắt buộc” từ đó,
và dán nó vào đây,
và tôi sẽ nói,
“Số điện thoại là bắt buộc”, và thông báo lỗi tiếp theo sẽ là cho “mẫu”.
Vì vậy, thông báo lỗi nói,
“Số điện thoại phải chứa chỉ số.”
Vì vậy, đó là thông điệp khác, tương tự cho email.
Vì vậy, như bạn có thể thấy các giá trị mà tôi đang sử dụng ở đây
tương ứng với tên Validator mà tôi đã sử dụng,
“midlength”, “max length required”, “pattern”.
Vì vậy, tương tự cho email,
bạn sẽ thấy “bắt buộc” và “Email'.
Vì vậy, tôi chỉ cần sao chép “bắt buộc” ở đây và nói, “Email là bắt buộc”.
Các mô hình khác như bạn nhớ lại là cho email và tôi sẽ nói,
“Email không ở định dạng hợp lệ”.
Vì vậy, thông thường nếu email của bạn không chứa
dấu @ và ký tự ở cả hai bên của dấu @,
thì đó không phải là email hợp lệ.
Email Validator này đã được xây dựng vào mô-đun hình thức phản ứng góc.
Vì vậy, chúng tôi sẽ sử dụng các email Validator ở đây.
Vì vậy, ở đây chúng tôi có tất cả các thông điệp xác nhận được xác định trong mã.
Vì vậy, điều đó làm cho nó rất dễ dàng để mở rộng chúng cho các trường bổ sung nếu bạn yêu cầu và cũng
thêm nhiều thông điệp xác thực cho các Xác thực bổ sung
mà bạn có thể giới thiệu cho mỗi trường biểu mẫu đó.
Ngoài ra, lỗi hình thức đối tượng này giúp tôi theo dõi
tất cả các lỗi liên quan đến mỗi yếu tố trong điện thoại của tôi.
Vì vậy, hiện tại tôi chỉ kiểm tra bốn yếu tố này,
vì vậy đó là lý do tại sao tôi chỉ có cho điều đó.
Chỉnh sửa nhỏ, “chiều dài trung bình” nên là min,
nhỏ 'l' và chiều dài tối đa cũng với một 'l' nhỏ,
tương tự cho tên cuối cùng cũng.
Bây giờ, chúng ta hãy viết mã cho các giá trị trên phương pháp thay đổi.
Vì vậy, tôi sẽ viết phương pháp
ở đây, "ValueChanged” và sau đó điều này
sẽ mất trong một tham số, có thể.
Đó là lý do tại sao tôi đặt một dấu hỏi dữ liệu,
có nghĩa là tham số là tùy chọn.
Vì vậy, điều đầu tiên tôi sẽ kiểm tra là, “mẫu phản hồi này”, có
nghĩa là nếu mẫu phản hồi chưa được tạo ra sau đó,
và nếu phương pháp này được gọi,
thì bạn chỉ cần “trả lại” mà không có bất cứ điều gì.
Sau đó, tôi sẽ xác định một
hằng số được gọi là “
mẫu phản hồi này” chỉ là để làm cho nó dễ dàng để xác định phần còn lại của mã,
sau đó tôi sẽ nói, “cho
trường const trong này.form lỗi”.
Vì vậy, lưu ý rằng trường này sẽ có lỗi này.form,
các hình thức lỗi đối tượng mà chúng tôi đã xác định trước đó.
Vì vậy, cảm thấy có nghĩa là tôi sẽ kiểm tra tất cả bốn.
Vì vậy, bất cứ khi nào tôi phát hiện bất kỳ thay đổi
, tên, họ,
số điện thoại và một email.
Vì vậy, đó là lý do tại sao bốn sẽ mang tên chính xác giống như chúng tôi đã sử dụng trong các hình thức ở đây,
và do đó các mã được viết ở đây sẽ được đơn giản để làm việc với.
Vì vậy, bây giờ tôi sẽ kiểm tra các lĩnh vực biểu mẫu.
Sau đó, trước tiên tôi sẽ
đảm bảo rằng trong trường hợp tôi đã trước đó đính kèm bất kỳ thông điệp vào các trường
biểu mẫu, hình thức lỗi đối tượng ở
đó, sau đó tôi sẽ xóa tất cả chúng.
Vì vậy, đó là lý do tại sao nếu bạn gọi điều này không có tham số,
tất cả các trường lỗi biểu mẫu sẽ được xóa,
và sau đó tôi sẽ làm, “kiểm soát FormGet”.
Vì vậy, lưu ý rằng tôi đang sử dụng lĩnh vực đó chính nó để làm một FormGet vì vậy,
tôi nhận được quyền truy cập vào lĩnh vực biểu mẫu cụ thể.
Vì vậy, lưu ý rằng trước đó chúng tôi đã làm “feedbackform.this.feedbackform.get"tên đầu tiên.”
và vân vân. Vì vậy, tôi đã đơn giản hóa những gì vào hằng số đặc biệt này mà chúng tôi
xác định ở đây và sau đó tôi sẽ nói, “Nếu kiểm soát”.
Vì vậy, có nghĩa là nếu kiểm soát không phải là null và “control.dirty”.
Vì vậy, nếu trường cụ thể đó đã bẩn
và không “kiểm soát hợp lệ”.
Vì vậy, có nghĩa là đối với mỗi trường,
tôi theo nghĩa đen kiểm tra để xem nếu nó là hợp lệ,
nếu nó là bẩn,
và sau đó nếu điều khiển đã có.
Sau đó, tôi sẽ kiểm tra để xem những loại lỗi đã được thêm vào điều
khiển đặc biệt này bằng biểu mẫu ở đó.
Vì vậy, trong đây tôi sẽ nói,
“const messages equal
to this this.validation messages field”.
Chú ý làm thế nào tôi đang chọn lên
tất cả các thông điệp xác nhận tương ứng với trường cụ thể tên họ, họ
, hoặc telnum hoặc email,
và sau đó tôi sẽ kiểm tra và xem liệu tôi có cần phải thêm điều này vào trường.
Vậy, làm thế nào để tôi làm điều đó?
Vì vậy, chúng tôi làm cho const key trong control.errors.
Vì vậy, lưu ý rằng điều khiển này là phản hồi form.get lĩnh vực và.error,
vì vậy tôi đang kiểm tra để xem nếu có bất kỳ lỗi có.
Sau đó, trong trường hợp đó,
tôi sẽ thêm trường lỗi biểu mẫu này.
Vì vậy, cho rằng mục cụ thể trong đối tượng JavaScript mà tôi đã định nghĩa ở đây,
tôi sẽ thêm thông điệp chìa khóa
cộng và không gian ở đây.
Vì vậy, bây giờ bất cứ điều gì hình thức khảo sát lỗi
hoặc thông điệp tương ứng sẽ được thực hiện và đính kèm trong,
và sau đó vì vậy lỗi hình thức của tôi đối tượng JavaScript bây giờ sẽ chứa
tất cả các thông báo lỗi gắn liền với nhau khi
này đặc biệt về giá trị thay đổi phương pháp chuột.
Bây giờ, đoạn mã đặc biệt này tôi đã mượn từ
các tài liệu xác nhận hình thức trên angular.iu.
Tôi thấy rằng đây là cách rất trực quan để thực hiện kiểm tra lỗi biểu mẫu.
Vì vậy, tôi nghĩ tại sao không sử dụng nó trong bài tập hình thức phản ứng góc cạnh của chúng tôi.
Vì vậy, thêm mã này trong đó.
Bây giờ, ứng dụng của tôi đã sẵn sàng để thực hiện các hình thức xác nhận cho hình thức phản ứng của tôi.
Vì vậy, bây giờ bước tiếp theo là đi đến liên hệ component.html,
tệp mẫu, và sau đó cập nhật tệp mẫu.
Vì vậy, đi đến tập tin mẫu,
bây giờ chúng ta sẽ đi đến các hình thức,
và trong hình thức này bây giờ thay vì làm tất cả các kiểm tra này trong mã,
bây giờ chúng ta có thể đơn giản hóa rất nhiều mã ở đây trong tập tin mẫu ở đây.
Bây giờ, thay vì làm tất cả các kiểm tra, những
gì chúng tôi nhận ra là các lỗi hình thức đối tượng JavaScript trong
tập tin typescript của tôi nếu có lỗi sau đó
các lỗi hình thức JavaScript đối tượng cho trường cụ thể đó,
sẽ có tất cả các thông báo lỗi gắn liền với nó.
Nếu không có lỗi,
thì những thông báo lỗi đó sẽ không có ở đó.
Vì vậy, đó là những gì tôi sẽ sử dụng để kiểm tra và
xem liệu tôi nên hiển thị lỗi biểu mẫu hay không.
Vì vậy, cho rằng vấn đề thay vì kiểm tra tất cả điều này,
điều duy nhất mà tôi cần phải kiểm tra ở đây là FormErrors firstname, đó là nó.
Vì vậy, rất dễ dàng để kiểm tra lỗi ở đây.
Tương tự như vậy, vì vậy toàn bộ mã này bây giờ được đơn giản hóa ở đây,
và tương tự như khi bạn kiểm tra tin nhắn ở đây
, những gì chúng ta sẽ làm, Tôi sẽ thay đổi toàn bộ điều này từ
yêu cầu chạm vào formerrors.FirstName.
Đó là nó. Nếu tồn tại,
sau đó tất cả các thông báo lỗi tương ứng với điều này sẽ đã có trong đó,
vì vậy tôi chỉ cần làm nội suy và
sau đó hiển thị formerrors.FirstName ở đây,
đơn giản như thế.
Bây giờ, bạn thấy bằng cách thực hiện
tất cả các hình thức xác nhận lỗi và mã và làm tất cả các kiểm tra và như vậy trong mã,
bạn đã xây dựng các thông báo lỗi mà chúng tôi cần phải hiển thị.
Tất cả những gì chúng tôi làm là chúng tôi lấy thông báo lỗi đó và sau đó đặt nó
vào mẫu ở đây, đó là nó.
Mã mẫu trở nên đơn giản hơn trong trường hợp cụ thể này,
và cũng bằng cách thực hiện việc xác nhận mẫu bằng cách sử dụng mã typescript,
chúng tôi đã đơn giản hóa mẫu ở đây cùng một lúc chúng tôi có thể thực hiện việc
xác nhận mẫu phức tạp hơn trong mã typescript của chúng tôi.
Tôi sẽ đi trước và làm cùng một loại thay đổi đối với các lĩnh vực còn lại ở đây,
vì vậy đối với lĩnh vực họ,
tôi sẽ một lần nữa thay thế toàn bộ điều này với formerrors.LastName.
Bây giờ, một lần nữa làm điều tương tự cho số điện thoại.
Bây giờ, một lần nữa khi bạn thấy cấu trúc của mẫu trở nên rất,
rất thống nhất trong trường hợp này.
Vì vậy, đó cũng là một cách khác để đơn giản hóa
cấu trúc mẫu của bạn tiếp tục đến trường email ở đây.
Tôi sẽ làm thay đổi tương tự để lĩnh vực email cũng.
Vì vậy, tôi sẽ nói formerrors.Email
và thay thế này bằng định dạng.email.
Vì vậy, như bạn có thể thấy,
mã mẫu của bạn đã đơn giản hóa đáng kể so với trước đây.
Với điều này tất cả các xác nhận lỗi mà tôi yêu cầu
đã được thêm vào mẫu của tôi và mẫu của tôi bây giờ được cập nhật,
vì vậy chúng ta hãy lưu các thay đổi.
Hai điều khác mà tôi cần phải thêm là thuộc tính được
gọi là email đến lĩnh vực cụ thể này được gọi là email.
Vì vậy, hãy nhớ rằng chúng tôi đã thêm email Validator ở đây.
Vì vậy, cùng với yêu cầu,
tôi sẽ thêm email cũng vào lĩnh vực đầu vào ở đây.
Tương tự như vậy, đối với telnum,
chúng tôi sử dụng mẫu ở đó.
Vì vậy, tôi sẽ thêm vào mô hình để đây là trường đầu vào cho telnum.
Vì vậy, trong lĩnh vực đầu vào tôi sẽ thêm mô hình là bằng và
mô hình mà tôi sẽ thêm là
trong dấu ngoặc vuông zero chín,
và sau đó đặt một ngôi sao ở đó.
Vì vậy, có nghĩa là đây là bất cứ điều gì từ 0 đến 9 lặp đi lặp lại nhiều lần.
Vì vậy, số điện thoại có thể chứa bất kỳ số nào giữa 0 và 9.
Bất kỳ số nào trong số những con số đó.
Bạn cũng có thể đặt một minlength và maxlength vào trường telnum
nếu cho quốc gia cụ thể của bạn số điện thoại có định dạng cố định,
bạn cũng có thể làm điều đó.
Vì vậy, điều đó có thể dễ dàng được thực hiện.
Nhưng, trong bài tập này,
tôi đã không thêm vào giới hạn minlength và maxlength cho telnum ở đây.
Bây giờ, chúng tôi đã thực hiện tất cả các cập nhật, chúng
ta hãy lưu các thay đổi và sau đó đi và xem biểu mẫu trong trình duyệt.
Đi đến trình duyệt bây giờ,
chúng ta hãy cuộn xuống biểu mẫu ở đây.
Hãy nhập tên và như bạn thấy khi bạn nhập chỉ một ký tự duy nhất,
sau đó thông báo lỗi sẽ được hiển thị ngay lập tức,
nhưng thời điểm bạn nhập vào các ký tự bổ sung thông báo lỗi sẽ biến mất.
Tương tự như vậy, cho họ.
Đối với số điện thoại, nếu bạn cố gắng nhập bất cứ thứ gì khác ngoài số,
sau đó các thông báo lỗi sẽ hiển thị.
Vì vậy, bạn có thể nhập,
tương tự cho email, vì vậy bạn thấy rằng email không phải là định dạng không hợp lệ sẽ được hiển thị.
Nếu bạn không có email thì nó cũng hiển thị thông báo lỗi.
Nhưng, thời điểm bạn gõ một cái gì đó như thế này,
thì đây được coi là một định dạng email hợp lệ vì vậy nó sẽ được chấp nhận.
Vì vậy, đó là tập hợp các thông báo lỗi và xác nhận hình thức
được thực hiện hoàn toàn trong mã như được thực hiện trong bài tập đặc biệt này.
Vì vậy, với điều này, chúng tôi hoàn thành bài tập này.
Trong bài tập này, chúng ta đã thấy việc sử dụng các thay đổi giá trị là có thể quan sát được,
và chúng ta cũng thấy làm thế nào chúng ta có thể thực hiện xác nhận hình thức trong mã typescript của chúng tôi.
Điều này hoàn thành bài tập này.
Đây là thời điểm tốt để bạn thực hiện một cam kết git với
thông điệp phản ứng tạo thành phần ba.