1
00:00:03,550 --> 00:00:08,265
Với một sự hiểu biết ngắn gọn về các hình thức phản ứng góc,

2
00:00:08,265 --> 00:00:10,670
chúng ta hãy tiến hành bài tập tiếp theo.

3
00:00:10,670 --> 00:00:12,800
Trong bài tập này, chúng ta sẽ xây dựng

4
00:00:12,800 --> 00:00:18,705
một dạng phản ứng góc trong ứng dụng Angular mà chúng ta đã làm việc cho đến nay.

5
00:00:18,705 --> 00:00:25,480
Trên đường đi, chúng tôi sẽ củng cố sự hiểu biết của chúng tôi về các hình thức phản ứng góc.

6
00:00:25,480 --> 00:00:28,435
Để bắt đầu bài tập,

7
00:00:28,435 --> 00:00:31,560
bước đầu tiên mà chúng ta cần làm là nhập mô-đun

8
00:00:31,560 --> 00:00:35,860
Angular Reactive Forms vào mô-đun ứng dụng của chúng tôi.

9
00:00:35,860 --> 00:00:38,020
Vì vậy, chúng ta hãy đi đến mô-đun ứng dụng,

10
00:00:38,020 --> 00:00:42,160
và sau đó chúng ta thấy rằng chúng ta đã nhập các mô-đun biểu mẫu trước đó.

11
00:00:42,160 --> 00:00:46,540
Chúng tôi cũng sẽ nhập mô-đun Angular Reactive Forms.

12
00:00:46,540 --> 00:00:49,145
Vì vậy, tôi sẽ sao chép điều đó, dán ở đây,

13
00:00:49,145 --> 00:00:53,810
và sau đó thay đổi điều đó vào mô-đun Angular Reactive Forms.

14
00:00:53,810 --> 00:00:57,770
Sau khi chúng tôi làm điều đó, chúng tôi cũng cần phải bao gồm điều đó vào trang trí của chúng tôi.

15
00:00:57,770 --> 00:01:00,440
Vì vậy, đi xuống trang trí ở đây,

16
00:01:00,440 --> 00:01:05,235
tôi sẽ nhập mô-đun biểu mẫu phản ứng trong trang trí.

17
00:01:05,235 --> 00:01:09,365
Hai mô-đun khác mà chúng ta cần nhập khẩu cho

18
00:01:09,365 --> 00:01:14,245
hình thức của chúng tôi là MatSelectModule, và MatslideToggleModule.

19
00:01:14,245 --> 00:01:19,035
Các mô-đun chọn cho phép chúng tôi sử dụng các yếu tố chọn,

20
00:01:19,035 --> 00:01:24,360
và SlideToggle cho phép chúng tôi sử dụng chuyển đổi slide trong hình thức của chúng tôi.

21
00:01:24,360 --> 00:01:26,750
Vì vậy, để làm điều đó, chúng tôi sẽ gõ

22
00:01:26,750 --> 00:01:35,670
nhập MatSelectModule từ góc độ/vật liệu/chọn,

23
00:01:36,890 --> 00:01:45,220
và nhập MatslideToggleModule từ góc độ/vật liệu/trượt chuyển đổi,

24
00:01:47,110 --> 00:01:55,195
và sau đó chúng ta cần phải thêm chúng vào trang trí NGModel của chúng tôi trong nhập khẩu.

25
00:01:55,195 --> 00:01:57,145
Vì vậy, đi xuống đó,

26
00:01:57,145 --> 00:02:02,840
hãy để tôi nhập MatSelectModule và MatslideToggleModule trong đó.

27
00:02:02,840 --> 00:02:04,685
Vì vậy, với những thay đổi này,

28
00:02:04,685 --> 00:02:08,240
mô-đun ứng dụng của chúng tôi bây giờ đã sẵn sàng để cho phép chúng tôi

29
00:02:08,240 --> 00:02:13,465
sử dụng mô-đun biểu mẫu phản ứng trong ứng dụng của chúng tôi.

30
00:02:13,465 --> 00:02:14,920
Trong bước tiếp theo,

31
00:02:14,920 --> 00:02:22,105
những gì tôi sẽ làm là tạo ra một lớp học ở đây được gọi là Phản hồi.

32
00:02:22,105 --> 00:02:28,265
Vì vậy, tôi sẽ tạo nó trong thư mục được chia sẻ trong tập tin phản hồi.

33
00:02:28,265 --> 00:02:34,790
Bây giờ, đây là cấu trúc của lớp đại diện cho mô

34
00:02:34,790 --> 00:02:38,210
hình dữ liệu tương ứng với mô hình hình thức mà chúng ta sẽ

35
00:02:38,210 --> 00:02:41,840
sử dụng trong ứng dụng Angular của chúng tôi.

36
00:02:41,840 --> 00:02:50,620
Vì vậy, tôi tạo ra các lớp có tên phản hồi.

37
00:02:51,210 --> 00:02:53,500
Trong lớp phản hồi,

38
00:02:53,500 --> 00:02:57,160
tôi sẽ bao gồm một vài thuộc tính;

39
00:02:57,970 --> 00:03:02,830
tên, họ,

40
00:03:02,830 --> 00:03:10,730
sau đó số điện thoại, Telnum, email,

41
00:03:10,730 --> 00:03:20,440
sau đó tôi đồng ý đó là một biến Boolean,

42
00:03:20,440 --> 00:03:28,385
thuộc tính Boolean, contacttype đó là của chuỗi loại.

43
00:03:28,385 --> 00:03:31,730
Nó sẽ trở nên rõ ràng hơn với bạn tại sao tôi bao gồm tất cả

44
00:03:31,730 --> 00:03:36,145
những điều này khi chúng ta nhìn vào thiết kế hình thức chính nó.

45
00:03:36,145 --> 00:03:42,350
Lớp phản hồi đặc biệt này tương ứng với phản hồi mà

46
00:03:42,350 --> 00:03:48,045
người dùng có thể gửi về nhà hàng của chúng tôi trong ứng dụng Angular của chúng tôi.

47
00:03:48,045 --> 00:03:51,800
Vì vậy, đó là lý do tại sao tôi tạo ra lớp Phản hồi này.

48
00:03:51,800 --> 00:03:55,865
Chúng tôi sẽ ánh xạ này vào mô hình hình thức trong

49
00:03:55,865 --> 00:04:00,650
một trong những thành phần có và cũng cùng với đó,

50
00:04:00,650 --> 00:04:05,920
Tôi sẽ xuất một hằng số đó là một chuỗi mảng gọi là

51
00:04:05,920 --> 00:04:12,380
contacttype mà như tôi

52
00:04:12,380 --> 00:04:19,410
đã đề cập là một chuỗi mảng chứa ba chuỗi ở đây,

53
00:04:25,060 --> 00:04:29,460
không, Tel, và email.

54
00:04:29,750 --> 00:04:34,875
Vì vậy, bây giờ cấu trúc mô hình dữ liệu của chúng tôi đã sẵn sàng.

55
00:04:34,875 --> 00:04:39,019
Vì vậy, sau đó khi chúng tôi phát triển phía máy chủ của

56
00:04:39,019 --> 00:04:45,555
chúng tôi, chúng tôi sẽ có thể bản đồ này thành một dữ liệu mà chúng tôi lưu trữ ở phía máy chủ.

57
00:04:45,555 --> 00:04:47,690
Vì vậy, trong ứng dụng Angular của chúng tôi,

58
00:04:47,690 --> 00:04:53,705
điều này tạo thành mô hình dữ liệu mà chúng tôi sẽ sử dụng cho ứng dụng của chúng tôi giống như các món ăn,

59
00:04:53,705 --> 00:04:58,850
các nhà lãnh đạo, và khuyến mãi mà chúng tôi đã phát triển này là một lớp mà cho

60
00:04:58,850 --> 00:05:04,375
phép chúng tôi nhóm lại với nhau một tập hợp các thuộc tính thành một lớp ở đây.

61
00:05:04,375 --> 00:05:06,380
Vì vậy, một khi chúng tôi đã hoàn thành điều đó, chúng

62
00:05:06,380 --> 00:05:10,365
ta hãy tiếp tục với việc tạo ra biểu mẫu phản ứng.

63
00:05:10,365 --> 00:05:16,095
Chúng ta sẽ tạo ra biểu mẫu phản ứng trong thành phần liên lạc của chúng ta.

64
00:05:16,095 --> 00:05:20,780
Vì vậy, chúng ta hãy đi đến các tập tin thành phần liên hệ,

65
00:05:20,780 --> 00:05:22,520
và chúng ta cũng sẽ bao gồm

66
00:05:22,520 --> 00:05:26,400
các hình thức tương ứng trong tập tin mẫu thành phần liên hệ.

67
00:05:26,400 --> 00:05:29,475
Vì vậy, trong các thành phần liên hệ loại tập tin kịch bản,

68
00:05:29,475 --> 00:05:32,135
vì vậy đây là nơi chúng tôi sẽ chuẩn bị hình thức của

69
00:05:32,135 --> 00:05:35,555
chúng tôi như chúng ta thấy biểu mẫu phản ứng được xây dựng chủ yếu

70
00:05:35,555 --> 00:05:43,265
trong mã và sau đó ánh xạ vào các yếu tố hình thức trong tập tin mẫu.

71
00:05:43,265 --> 00:05:49,360
Vì vậy, ở đây tôi sẽ nhập một vài lớp học.

72
00:05:49,360 --> 00:05:52,655
Tôi sẽ nhập FormBuilder,

73
00:05:52,655 --> 00:06:00,055
sau đó FormBuilder, và validators.

74
00:06:00,055 --> 00:06:05,890
Validators sẽ được sử dụng để xác nhận biểu mẫu sẽ có trong bài tập tiếp theo,

75
00:06:05,890 --> 00:06:10,125
nhưng tôi sẽ nhập chúng vào lúc này.

76
00:06:10,125 --> 00:06:15,735
Chúng được nhập khẩu từ thư viện hình thức Angular.

77
00:06:15,735 --> 00:06:19,300
Vì vậy, một khi chúng tôi nhập khẩu này,

78
00:06:19,300 --> 00:06:29,790
chúng tôi sẽ nhập các lớp phản hồi và liên lạc hằng số

79
00:06:29,790 --> 00:06:38,360
từ tập tin chia sẻ/phản hồi

80
00:06:38,360 --> 00:06:41,415
mà chúng tôi vừa tạo ra trong bước trước.

81
00:06:41,415 --> 00:06:44,850
Chúng tôi cần điều này trong ứng dụng của chúng tôi.

82
00:06:44,850 --> 00:06:49,455
Bây giờ, bên trong lớp của tôi ở đây,

83
00:06:49,455 --> 00:07:00,310
tôi sẽ khai báo một vài biến được gọi là FeedbackForm đó là loại FormGroup.

84
00:07:00,410 --> 00:07:07,475
Đây là mô hình hình thức đó là sẽ lưu trữ

85
00:07:07,475 --> 00:07:11,960
các hình thức phản ứng ở đây và sau đó tôi cũng sẽ

86
00:07:11,960 --> 00:07:17,270
tuyên bố một phản hồi biến của các loại phản hồi,

87
00:07:17,270 --> 00:07:19,745
vì vậy đây sẽ là mô hình dữ liệu tương ứng.

88
00:07:19,745 --> 00:07:27,930
Sau này giá trị phản hồi này có thể được lấy từ một máy chủ trong ứng dụng của chúng

89
00:07:27,930 --> 00:07:34,205
tôi, và sau đó tôi cũng sẽ khai báo contacttype như một biến

90
00:07:34,205 --> 00:07:41,045
đó là của mảng chuỗi contacttype.

91
00:07:41,045 --> 00:07:44,860
Bởi vì tôi cần phải sử dụng nó trong ứng dụng của chúng tôi.

92
00:07:44,860 --> 00:07:48,675
Để xây dựng biểu mẫu phản ứng trong constructor,

93
00:07:48,675 --> 00:07:58,605
tôi sẽ tiêm FormBuilder vào constructor ở đây,

94
00:07:58,605 --> 00:08:03,605
và tôi sẽ tạo ra một phương pháp riêng biệt được gọi là

95
00:08:03,605 --> 00:08:08,950
CreateForm mà tôi sẽ gọi trong constructor,

96
00:08:08,950 --> 00:08:12,300
vì vậy khi lớp này được xây dựng hình thức sẽ được tạo ra.

97
00:08:12,300 --> 00:08:17,870
Vì vậy, CreateForm sẽ là một phương pháp trong đó tôi sẽ tạo ra các hình thức thực tế.

98
00:08:17,870 --> 00:08:24,060
Vì vậy, hãy để tôi thêm vào phương pháp CreateForm ở đây.

99
00:08:24,060 --> 00:08:27,590
Đây chỉ là thuận tiện tôi có thể chỉ đơn giản là

100
00:08:27,590 --> 00:08:31,250
bao gồm các mã trực tiếp trong các constructor riêng của mình,

101
00:08:31,250 --> 00:08:34,760
nhưng bạn sẽ thấy rằng có thể có lý do tại sao bạn có

102
00:08:34,760 --> 00:08:41,060
thể cần phải gọi CreateForm này từ các vị trí khác.

103
00:08:41,060 --> 00:08:47,240
Vì vậy, tốt hơn là đưa nó vào một phương pháp riêng biệt ở đây.

104
00:08:47,240 --> 00:08:50,830
Vì vậy, tôi sẽ tạo ra các hình thức ở đây, biểu mẫu phản ứng,

105
00:08:50,830 --> 00:08:56,775
và sau đó đặt nó vào biến FeedbackForm mà tôi đã tuyên bố trước đó.

106
00:08:56,775 --> 00:08:58,335
Vì vậy, để tạo ra các hình thức,

107
00:08:58,335 --> 00:09:02,215
tôi sẽ có sự giúp đỡ của FormBuilder,

108
00:09:02,215 --> 00:09:05,145
FB mà tôi đã tuyên bố tại nhà xây dựng,

109
00:09:05,145 --> 00:09:10,760
và sau đó FB cung cấp một phương pháp gọi là Nhóm cho phép tôi

110
00:09:10,760 --> 00:09:16,910
xác định một nhóm, một FormGroup ở đây.

111
00:09:16,910 --> 00:09:23,040
Vì vậy, trong đó, bây giờ tôi sẽ xây dựng các phần của hình thức ở đó.

112
00:09:23,040 --> 00:09:24,845
Vì vậy, trong nhóm này,

113
00:09:24,845 --> 00:09:28,775
bây giờ tôi có thể bao gồm các điều khiển biểu mẫu khác nhau ở đó.

114
00:09:28,775 --> 00:09:34,050
Vì vậy, trước tiên tôi sẽ đặt tên,

115
00:09:34,050 --> 00:09:44,200
sau đó họ.

116
00:09:45,910 --> 00:09:51,175
Lưu ý cách các trường trong biểu mẫu của tôi

117
00:09:51,175 --> 00:09:56,460
phản ánh chặt chẽ các trường trong lớp phản hồi của tôi.

118
00:09:56,460 --> 00:09:59,790
Chúng không phải khớp chính xác, nhưng nếu chúng khớp,

119
00:09:59,790 --> 00:10:01,630
thì việc truyền dữ liệu giữa mô

120
00:10:01,630 --> 00:10:06,550
hình dữ liệu và bốn mô hình trở nên đơn giản hơn rất nhiều.

121
00:10:06,550 --> 00:10:12,500
Telnum mà tôi sẽ rời đi vì...

122
00:10:13,040 --> 00:10:15,800
tôi đã thêm tên, họ,

123
00:10:15,800 --> 00:10:25,140
Telnum, email, và đồng ý, và loại liên lạc,

124
00:10:25,550 --> 00:10:31,360
mà tôi sẽ đặt là không có để bắt đầu với.

125
00:10:31,360 --> 00:10:35,710
Nhớ lại rằng kiểu liên lạc là một mảng chuỗi chứa ba trong số chúng,

126
00:10:35,710 --> 00:10:40,015
vì vậy bạn nên chọn một trong số chúng và sau đó ánh xạ nó vào thuộc tính này ở đây.

127
00:10:40,015 --> 00:10:44,920
Vì vậy, tôi sẽ chọn điều này như không có và sau đó tin nhắn,

128
00:10:44,920 --> 00:10:49,120
đó sẽ là phản hồi mà người dùng đưa ra về

129
00:10:49,120 --> 00:10:53,605
nhà hàng của chúng tôi được ánh xạ vào một chuỗi ở đây.

130
00:10:53,605 --> 00:10:59,765
Vì vậy, đây là những lĩnh vực khác nhau mà sẽ tạo thành một phần của hình thức của chúng tôi ở đây.

131
00:10:59,765 --> 00:11:04,370
Vì vậy, một khi chúng ta có cấu trúc của hình thức tại chỗ ở đây,

132
00:11:04,370 --> 00:11:07,525
vì vậy bạn nhận thấy rằng khi phương

133
00:11:07,525 --> 00:11:12,455
thức này được gọi, hình thức này sẽ là hình thức phản ứng sẽ được tạo ra trong mã ở đây.

134
00:11:12,455 --> 00:11:16,595
Bây giờ, chúng ta cần phải ánh xạ điều này vào khung nhìn,

135
00:11:16,595 --> 00:11:17,900
vào mẫu ở đó.

136
00:11:17,900 --> 00:11:21,470
Vì vậy, chúng ta sẽ làm điều đó trong bước tiếp theo.

137
00:11:21,470 --> 00:11:26,130
Vì vậy, bây giờ, đi đến tập tin mẫu của chúng tôi,

138
00:11:26,130 --> 00:11:31,415
trong tập tin mẫu thành phần liên hệ,

139
00:11:31,415 --> 00:11:36,159
chúng tôi sẽ di chuyển xuống và sau đó bao gồm điều này vào

140
00:11:36,159 --> 00:11:42,910
tập tin mẫu của chúng tôi ngay sau khi div này ở đây,

141
00:11:42,910 --> 00:11:50,325
vì vậy chúng tôi có div này trong quan điểm liên hệ của chúng tôi có chứa thông tin vị trí và vân vân.

142
00:11:50,325 --> 00:11:54,510
Ngay sau đó, tôi sẽ tạo ra một div bên trong

143
00:11:54,510 --> 00:11:59,820
mà chúng tôi sẽ lưu trữ các hình thức phản ứng ở đó.

144
00:11:59,820 --> 00:12:17,720
Hãy để tôi áp dụng một vài điều bố trí flex

145
00:12:17,720 --> 00:12:19,100
ở đây để div của tôi.

146
00:12:19,100 --> 00:12:22,110
Bây giờ, kích thước hình thức này như bạn có thể thấy nên

147
00:12:22,110 --> 00:12:25,905
là một lớp CSS mà tôi sẽ tạo ra một chút sau đó.

148
00:12:25,905 --> 00:12:31,540
Bên trong div này, tôi sẽ lưu trữ hình thức của tôi.

149
00:12:31,540 --> 00:12:36,680
Vì vậy, một khi tôi đặt div này vào tập tin mẫu của tôi,

150
00:12:36,680 --> 00:12:40,180
bây giờ cho phép tôi bắt đầu với một tiêu đề cho điều này.

151
00:12:40,180 --> 00:12:47,675
Vì vậy, chúng tôi sẽ nói, “Gửi phản hồi của bạn cho chúng tôi.”

152
00:12:47,675 --> 00:12:54,250
Vì vậy, bạn đang tìm kiếm phản hồi từ khách truy cập vào trang web của bạn.

153
00:12:54,950 --> 00:12:58,050
Chúng ta sẽ bắt đầu xây dựng các hình thức.

154
00:12:58,050 --> 00:13:03,200
Vì vậy, hãy để tôi bắt đầu với thẻ hình thức

155
00:13:03,200 --> 00:13:08,275
ở đây và sau đó chúng tôi sẽ xây dựng ra các hình thức bên trong thẻ hình thức này ở đây.

156
00:13:08,275 --> 00:13:12,180
Vì vậy, đối với các hình thức, điều đầu tiên mà tôi sẽ làm là áp dụng

157
00:13:12,180 --> 00:13:16,535
không xác nhận bởi vì xác nhận sẽ được chăm sóc bởi góc cạnh,

158
00:13:16,535 --> 00:13:21,380
và sau đó cũng áp dụng một nhóm hình thức ở đây.

159
00:13:21,380 --> 00:13:38,060
Vì vậy, lưu ý rằng nhóm hình thức này là một trong đó sẽ buộc tôi vào mô hình hình thức phản ứng

160
00:13:38,060 --> 00:13:40,555
mà tôi đã tạo ra trong mã của tôi ở đây.

161
00:13:40,555 --> 00:13:42,380
Vì vậy, bằng cách làm điều này,

162
00:13:42,380 --> 00:13:47,255
chúng tôi đang buộc trong hình thức phản ứng này trong mẫu để

163
00:13:47,255 --> 00:13:53,680
mô hình hình thức tương ứng trong tập tin typescript của chúng tôi ở đó.

164
00:13:53,680 --> 00:13:59,100
Vì vậy, cách chúng tôi làm điều đó là chúng tôi tuyên bố nhóm hình thức và hình thức phản hồi.

165
00:13:59,100 --> 00:14:00,910
Tôi sẽ chỉ cho bạn cách bạn buộc trong

166
00:14:00,910 --> 00:14:04,840
các yếu tố biểu mẫu còn lại với

167
00:14:04,840 --> 00:14:09,315
các thuộc tính tương ứng trong mô hình biểu mẫu trong một thời gian ngắn.

168
00:14:09,315 --> 00:14:11,325
Vì vậy, sau khi chúng tôi làm điều này, chúng ta

169
00:14:11,325 --> 00:14:20,480
hãy đặt trong các yếu tố hình thức của chúng tôi vào vị trí bên trong mô hình hình thức này.

170
00:14:20,480 --> 00:14:24,490
Vì vậy, tôi sẽ khai báo một P xung quanh đây và sau đó bên trong đó tôi

171
00:14:24,490 --> 00:14:28,860
sẽ sử dụng mat-form-field ở đây,

172
00:14:28,860 --> 00:14:35,475
mà tôi sẽ áp dụng một lớp CSS gọi là Half-width,

173
00:14:35,475 --> 00:14:39,600
và đóng này đi.

174
00:14:39,600 --> 00:14:45,195
Vì vậy, điều này sẽ đưa điều khiển hình thức đầu tiên của tôi vào vị trí ở đây.

175
00:14:45,195 --> 00:14:55,930
Vì vậy, ở đây, tôi sẽ đặt đầu vào và sau đó áp dụng MatinPut từ vật liệu góc cạnh ở đây.

176
00:14:56,930 --> 00:15:03,530
Để buộc này vào tài sản bên trong mô hình biểu mẫu của

177
00:15:03,530 --> 00:15:08,630
tôi, tôi sẽ cần phải làm FormControlName,

178
00:15:09,980 --> 00:15:14,650
và cái đầu tiên là tên đầu tiên.

179
00:15:14,650 --> 00:15:20,370
Vì vậy, bằng cách đó, đầu vào này bây giờ được gắn vào thuộc tính tên đầu tiên

180
00:15:20,370 --> 00:15:26,015
mà tôi đã xác định bên trong mô hình mẫu của tôi mà tôi đã xác định trong mã.

181
00:15:26,015 --> 00:15:29,680
Tên đầu tiên, và sau đó tôi sẽ xác

182
00:15:29,680 --> 00:15:37,900
định giữ chỗ là tên đầu tiên.

183
00:15:37,900 --> 00:15:39,970
Vì vậy, như bạn mong đợi,

184
00:15:39,970 --> 00:15:43,685
trường đầu vào này sẽ được sử dụng để nhập

185
00:15:43,685 --> 00:15:51,215
tên đầu tiên của người dùng, nhập văn bản.

186
00:15:51,215 --> 00:15:56,935
Thật thú vị, bạn thấy rằng chúng tôi không có ng-model ở đây

187
00:15:56,935 --> 00:16:02,950
hoặc bất kỳ biến mẫu và như vậy trong hình thức của tôi nữa.

188
00:16:02,950 --> 00:16:05,945
Các dạng phản ứng hoạt động khác nhau.

189
00:16:05,945 --> 00:16:08,480
Vì vậy, như bạn thấy trong biểu mẫu phản ứng,

190
00:16:08,480 --> 00:16:11,975
bạn ánh xạ nhóm biểu mẫu và sau đó bạn thử tên điều khiển biểu mẫu.

191
00:16:11,975 --> 00:16:16,095
Nếu bạn đang tạo điều khiển biểu mẫu với lớp điều khiển biểu mẫu,

192
00:16:16,095 --> 00:16:20,440
bạn sẽ khai báo điều này như là điều khiển biểu mẫu trong dấu ngoặc vuông và sau

193
00:16:20,440 --> 00:16:24,910
đó phù hợp với điều khiển biểu mẫu tương ứng mà bạn tạo trong kiểu hoài nghi của bạn.

194
00:16:24,910 --> 00:16:28,940
Nhưng bây giờ vì chúng tôi đang sử dụng trình tạo biểu mẫu,

195
00:16:28,940 --> 00:16:33,280
tôi chỉ cần buộc trong nhóm biểu mẫu như thế

196
00:16:33,280 --> 00:16:38,605
này trong biểu mẫu của tôi với mô hình biểu mẫu tương ứng,

197
00:16:38,605 --> 00:16:39,890
và sau đó phần còn lại của chúng,

198
00:16:39,890 --> 00:16:42,690
tôi khai báo là tên điều khiển biểu mẫu và sau đó kết hợp chúng với

199
00:16:42,690 --> 00:16:45,085
các thuộc tính tương ứng trong mô

200
00:16:45,085 --> 00:16:48,995
hình điều khiển biểu mẫu mà tôi có trong bản đánh máy của tôi theo cách mã.

201
00:16:48,995 --> 00:16:53,950
Vì vậy, điều này sẽ tạo ra trường tên đầu tiên ở đó.

202
00:16:53,950 --> 00:16:56,400
Để tôi sao chép cái này.

203
00:16:56,400 --> 00:17:00,150
Tôi cần họ ở đây.

204
00:17:00,150 --> 00:17:07,005
Vì vậy, tôi sẽ sao chép này và sau đó nói tên điều khiển biểu mẫu là Họ,

205
00:17:07,005 --> 00:17:10,510
và giữ chỗ là Họ,

206
00:17:10,510 --> 00:17:12,550
và các loại văn bản, ở đây.

207
00:17:12,550 --> 00:17:18,975
Tôi có tên,

208
00:17:18,975 --> 00:17:24,970
tôi có họ và nếu bạn nhìn vào mô hình điều khiển biểu mẫu,

209
00:17:24,970 --> 00:17:27,400
bạn sẽ thấy rằng sau khi tên và họ,

210
00:17:27,400 --> 00:17:31,770
tôi có số điện thoại như là một trong những tiếp theo,

211
00:17:31,770 --> 00:17:34,325
vì vậy tôi sẽ dán này vào đây.

212
00:17:34,325 --> 00:17:38,390
Sau đó, tên điều khiển biểu mẫu ở đây là Telnum,

213
00:17:38,390 --> 00:17:46,920
và giữ chỗ là Số điện thoại,

214
00:17:46,920 --> 00:17:51,405
và loại là Tel.

215
00:17:51,405 --> 00:17:53,385
Trong khi chúng tôi đang ở đó,

216
00:17:53,385 --> 00:17:59,905
tôi sẽ buộc trong Bắt buộc vào những mặc dù đó là không thực sự bắt buộc.

217
00:17:59,905 --> 00:18:08,275
Nhưng hãy để tôi nói thêm điều đó trong đó.

218
00:18:08,275 --> 00:18:11,920
Bây giờ, số điện thoại sau đó tôi có email.

219
00:18:11,920 --> 00:18:20,679
Vì vậy, trường tiếp theo là Email

220
00:18:25,520 --> 00:18:32,100
và chỗ dành sẵn là Email

221
00:18:32,100 --> 00:18:35,510
và loại cũng là.

222
00:18:35,510 --> 00:18:38,600
Vì vậy, bây giờ tôi có đầu tiên,

223
00:18:38,600 --> 00:18:41,610
họ, và số điện thoại, và email.

224
00:18:41,610 --> 00:18:52,820
Điều tiếp theo mà tôi sẽ thêm vào là một chuyển đổi slide.

225
00:18:53,850 --> 00:18:56,600
Trước đó chúng tôi sử dụng hộp kiểm.

226
00:18:56,600 --> 00:19:03,240
Các slidetoggle là một điều khiển hình thức khác mà vật liệu góc cung cấp,

227
00:19:03,240 --> 00:19:07,150
đó là hơi khác so với hộp kiểm và

228
00:19:07,150 --> 00:19:11,480
tôi nghĩ rằng tôi sẽ minh họa với bạn bằng cách sử dụng nó trong các hình thức ở đây.

229
00:19:11,480 --> 00:19:18,680
Bây giờ, đây là nơi tôi sẽ sử dụng một bảng để định vị các yếu tố này.

230
00:19:19,890 --> 00:19:22,300
Lý do là, các

231
00:19:22,300 --> 00:19:25,520
yếu tố này rất khó để định vị mà không cần sử dụng một bảng.

232
00:19:25,520 --> 00:19:27,605
Vì vậy, bên trong bảng,

233
00:19:27,605 --> 00:19:31,740
tôi chắc chắn tất cả các bạn biết làm thế nào để sử dụng bảng,

234
00:19:35,280 --> 00:19:39,740
tôi đã cố gắng để định vị chúng bằng cách sử dụng

235
00:19:39,740 --> 00:19:44,970
bố trí flex tiêu chuẩn và không phải là rất thành công với điều đó.

236
00:19:44,970 --> 00:19:50,510
Vì vậy, thay vào đó tôi sử dụng một bảng để định vị hai mục này trong hình thức của tôi.

237
00:19:50,510 --> 00:19:54,350
Vì vậy, mat-slide-toggle.

238
00:19:54,350 --> 00:19:57,680
Vì vậy, slidetoggle giống như hộp kiểm,

239
00:19:57,680 --> 00:20:00,390
bạn có thể bật và tắt nó,

240
00:20:00,390 --> 00:20:04,550
và điều này được phép chọn một giá trị Boolean ở đây.

241
00:20:04,550 --> 00:20:14,200
Vì vậy, slidetoggle và FormControlName là đồng ý.

242
00:20:14,200 --> 00:20:16,140
Nếu bạn nhớ, chúng tôi đã đồng ý,

243
00:20:16,140 --> 00:20:22,925
đó là một tài sản Boolean trong điều khiển biểu mẫu.

244
00:20:22,925 --> 00:20:25,735
Sau đó, vì điều này, tôi sẽ nói,

245
00:20:25,735 --> 00:20:29,340
chúng tôi có thể liên lạc với bạn không?

246
00:20:29,340 --> 00:20:35,140
Bây giờ, nó sẽ trở nên rõ ràng hơn với bạn khi bạn thấy phiên bản cuối cùng của

247
00:20:35,140 --> 00:20:43,060
biểu mẫu này để hiểu tại sao chúng tôi làm điều này.

248
00:20:43,060 --> 00:20:49,895
Ngay bây giờ, chúng ta sẽ đưa tất cả các bộ phận vào dạng phản ứng của tôi ở đây.

249
00:20:49,895 --> 00:20:55,925
Phần thứ hai tôi sẽ sử dụng một chọn,

250
00:20:55,925 --> 00:21:03,920
được hỗ trợ thông qua các thành phần mat-select trong vật liệu góc.

251
00:21:03,920 --> 00:21:12,460
Vì vậy, MD chọn và cho này giữ chỗ,

252
00:21:13,520 --> 00:21:21,690
tôi sẽ xác định là “Làm thế nào?” ,

253
00:21:21,690 --> 00:21:27,580
và FormControlName mà tôi sẽ buộc này là

254
00:21:27,580 --> 00:21:37,650
“contacttype” và đóng MD chọn.

255
00:21:37,650 --> 00:21:41,720
Vì vậy, điều này cho phép tôi tạo ra một phần tử select trong hình thức của tôi.

256
00:21:41,720 --> 00:21:44,660
Vì vậy, các yếu tố chọn là một cái gì đó cung cấp cho tôi

257
00:21:44,660 --> 00:21:48,535
một danh sách kéo xuống mà từ đó tôi có thể chọn một trong số họ.

258
00:21:48,535 --> 00:21:50,905
Vì vậy, để tạo danh sách kéo xuống,

259
00:21:50,905 --> 00:22:00,510
tôi sẽ sử dụng mat-tùy chọn có sẵn như là một thành phần trong vật liệu góc cạnh.

260
00:22:00,510 --> 00:22:05,035
Vì vậy, tùy chọn mat-được bao gồm bên trong mat-select.

261
00:22:05,035 --> 00:22:06,810
Vì vậy, đối với các tùy chọn,

262
00:22:06,810 --> 00:22:09,570
tôi sẽ làm *NGFor,

263
00:22:09,570 --> 00:22:17,070
và tôi chắc chắn bạn nhớ chỉ thị NGFor từ trước đó,

264
00:22:17,070 --> 00:22:24,750
*NGFor “Hãy để ctype của ContactType.”

265
00:22:24,750 --> 00:22:28,360
Bây giờ, bạn thấy lý do tại sao tôi tuyên bố biến kiểu liên lạc

266
00:22:28,360 --> 00:22:44,740
trong mã của tôi trước đó và sau đó tôi sẽ nói, [value] = “ctype.”

267
00:22:44,740 --> 00:23:00,840
Vì vậy, tôi đang thiết lập tùy chọn của tôi trong lựa chọn của tôi ở đây và sử dụng nội suy,

268
00:23:00,840 --> 00:23:03,040
tôi sẽ gõ ctype ở đây.

269
00:23:03,040 --> 00:23:10,100
Vì vậy, điều đó sẽ cung cấp cho tôi một menu tùy chọn kéo xuống trong hình thức của tôi ở đó.

270
00:23:10,100 --> 00:23:14,665
Vì vậy, đó là phần tiếp theo và sau đó cuối cùng,

271
00:23:14,665 --> 00:23:21,270
sau khi bảng, tôi sẽ đặt trong một khu vực văn bản ở đây.

272
00:23:21,270 --> 00:23:31,320
Vì vậy, tôi sẽ nói p và đóng lại P. để tạo kiểu mẫu phản ứng,

273
00:23:31,320 --> 00:23:35,395
phần tử P cho phép tôi định vị các mục đúng cách.

274
00:23:35,395 --> 00:23:37,580
Vì vậy, đó là lý do tại sao tôi sử dụng nó.

275
00:23:37,580 --> 00:23:42,380
Vì vậy, như bạn nhớ lại,

276
00:23:42,540 --> 00:23:48,740
mat-form-field cho phép tôi

277
00:23:48,740 --> 00:23:56,239
bao gồm một container đầu vào ở đây và sau đó bên trong đó tôi sẽ xác định một khu vực văn bản,

278
00:23:56,239 --> 00:24:00,310
mà tôi áp dụng

279
00:24:00,310 --> 00:24:08,650
chỉ thị MatinPut cho rằng.

280
00:24:08,650 --> 00:24:15,460
Sau đó, FormControlName, tôi sẽ cung cấp cho là “tin nhắn”.

281
00:24:15,460 --> 00:24:23,290
Vì vậy, yếu tố hình thức cụ thể này cho phép người dùng gõ

282
00:24:23,290 --> 00:24:31,305
vào thông báo phản hồi cho nhà hàng của tôi.

283
00:24:31,305 --> 00:24:37,100
Vì vậy, giữ chỗ “Phản hồi của bạn”,

284
00:24:37,100 --> 00:24:42,610
và sau đó tôi sẽ cung cấp cho khu vực văn bản một kích thước của

285
00:24:42,610 --> 00:24:51,245
12 hàng ở đây và sau đó đóng cửa khu vực văn bản.

286
00:24:51,245 --> 00:24:58,005
Vì vậy, ở đây chúng tôi có một khu vực văn bản với 12 hàng.

287
00:24:58,005 --> 00:25:03,350
Vì vậy, điều đó hoàn thành hầu hết các hình thức.

288
00:25:03,350 --> 00:25:07,910
Xin lỗi, cái này phải ở ngoài bàn.

289
00:25:08,070 --> 00:25:11,830
Chúng tôi cần một nút để gửi biểu mẫu.

290
00:25:11,830 --> 00:25:20,755
Vì vậy, ngay tại đó, tôi sẽ bao gồm một nút của type="submit” và

291
00:25:20,755 --> 00:25:24,155
nút gửi này tôi sẽ áp dụng nút

292
00:25:24,155 --> 00:25:32,270
mat-button và cũng áp dụng class="background-primary”.

293
00:25:33,600 --> 00:25:42,770
Bạn đã thấy tôi áp dụng này vào nút trong bài tập trước đó cũng,

294
00:25:42,770 --> 00:25:45,740
loại nút tương tự.

295
00:25:45,740 --> 00:25:48,510
Vì vậy, bây giờ hình thức của tôi đã gần như sẵn sàng.

296
00:25:48,510 --> 00:25:54,455
Bạn có thể thêm vào một vài lớp CSS vào thành phần liên hệ.

297
00:25:54,455 --> 00:25:58,725
Ba lớp mà tôi đã sử dụng là full-width,

298
00:25:58,725 --> 00:26:06,420
điều này được sử dụng để thiết lập kích thước của các yếu tố ở đó.

299
00:26:06,420 --> 00:26:10,980
Vì vậy, toàn chiều rộng 95 phần trăm, nửa chiều rộng.

300
00:26:11,200 --> 00:26:17,565
Vì vậy, điều này cho phép tôi kích thước các yếu tố một cách chính xác,

301
00:26:17,565 --> 00:26:23,930
45 phần trăm nửa chiều rộng và sau đó hình thức kích thước.

302
00:26:26,400 --> 00:26:32,740
Vì vậy, tôi sử dụng các lớp CSS trong hình thức của tôi.

303
00:26:32,740 --> 00:26:38,230
Vì vậy, với điều này, chúng ta hãy lưu các thay đổi,

304
00:26:38,460 --> 00:26:44,150
và xem nhanh vào biểu mẫu trong ứng dụng của chúng tôi.

305
00:26:44,150 --> 00:26:45,915
Đi đến trình duyệt,

306
00:26:45,915 --> 00:26:48,725
trong chế độ xem liên hệ,

307
00:26:48,725 --> 00:26:54,210
khi bạn cuộn xuống, bây giờ bạn thấy biểu mẫu tại chỗ trong chế độ xem liên hệ ở đây.

308
00:26:54,210 --> 00:26:57,660
Vì vậy, bạn thấy gửi cho chúng tôi phản hồi của bạn

309
00:26:57,660 --> 00:27:01,985
, tên, họ, số điện thoại,

310
00:27:01,985 --> 00:27:06,695
email và chuyển đổi slide ở đây,

311
00:27:06,695 --> 00:27:12,395
vì vậy bạn thấy chuyển đổi slide tại chỗ ở đó và sau đó đây là chọn này.

312
00:27:12,395 --> 00:27:15,650
Lựa chọn cho phép tôi chọn một trong ba cái này.

313
00:27:15,650 --> 00:27:20,415
Giá trị mặc định là không có và sau đó là khu vực văn bản ở đây,

314
00:27:20,415 --> 00:27:25,675
cho phép tôi gõ vào ý kiến phản hồi của tôi ở đây và sau đó là nút gửi.

315
00:27:25,675 --> 00:27:28,940
Vì vậy, điều này hoàn thành biểu mẫu phản ứng trong

316
00:27:28,940 --> 00:27:32,690
ứng dụng của tôi nhưng khi bạn nhấp vào nút Gửi,

317
00:27:32,690 --> 00:27:35,000
bạn sẽ không thể gửi biểu mẫu này.

318
00:27:35,000 --> 00:27:39,480
Vì vậy, chúng ta cần phải thêm NGSubmit vào biểu mẫu của chúng tôi trong mẫu

319
00:27:39,480 --> 00:27:44,485
và sau đó thêm một phương thức trong tập tin script kiểu của chúng tôi.

320
00:27:44,485 --> 00:27:47,185
Đi đến mã của chúng tôi,

321
00:27:47,185 --> 00:27:49,315
để các hình thức ở đây,

322
00:27:49,315 --> 00:27:53,830
cùng với các hình thức novalidFormGroup,

323
00:27:53,830 --> 00:28:01,670
Tôi sẽ thêm vào một NGSubmit để các hình thức.

324
00:28:02,730 --> 00:28:10,025
Tôi sẽ gọi phương pháp như onSubmit phương pháp.

325
00:28:10,025 --> 00:28:14,155
Vì vậy, với điều này, mẫu của tôi bây giờ đã sẵn sàng để gửi thông tin.

326
00:28:14,155 --> 00:28:17,195
Tôi cần phải đi vào các thành phần liên lạc,

327
00:28:17,195 --> 00:28:25,380
gõ tập tin kịch bản và sau đó tạo ra phương pháp onSubmit ở đây.

328
00:28:25,380 --> 00:28:28,420
Vì vậy, trong phương pháp onSubmit,

329
00:28:31,450 --> 00:28:37,030
nó xảy ra rằng mô hình biểu mẫu là chính xác giống như các mô hình dữ liệu,

330
00:28:37,030 --> 00:28:45,790
vì vậy tôi chỉ có thể lấy giá trị của mô hình biểu mẫu.

331
00:28:45,790 --> 00:28:49,840
Vì vậy, khi bạn có một mô hình biểu mẫu như mẫu phản hồi này,

332
00:28:49,840 --> 00:28:54,410
mẫu phản hồi cho một thuộc tính được gọi là giá trị,

333
00:28:54,410 --> 00:29:00,020
cho phép tôi lấy giá trị hiện tại của tất cả các từ mẫu phản hồi của tôi.

334
00:29:00,020 --> 00:29:03,810
Vì vậy, điều này sẽ tạo thành một đối tượng JavaScript,

335
00:29:03,810 --> 00:29:06,740
mà sau đó tôi có thể bản đồ vào phản hồi đối tượng JavaScript.

336
00:29:06,740 --> 00:29:10,170
Nó xảy ra như vậy, cả hai đều có cấu trúc chính xác giống nhau,

337
00:29:10,170 --> 00:29:11,690
mô hình dữ liệu và mô hình biểu mẫu.

338
00:29:11,690 --> 00:29:14,140
Vì vậy, đó là lý do tại sao tôi có thể nhanh chóng tải giá trị

339
00:29:14,140 --> 00:29:18,120
trực tiếp vào mô hình dữ liệu khi người dùng gửi biểu mẫu.

340
00:29:18,120 --> 00:29:21,120
Nếu mô hình dữ liệu của bạn hơi khác với mô hình biểu mẫu,

341
00:29:21,120 --> 00:29:24,460
bạn cần phải ánh xạ trong các thuộc tính riêng lẻ một cách rõ ràng và

342
00:29:24,460 --> 00:29:28,890
có thể được thực hiện bên trong phương pháp này ở đó.

343
00:29:29,610 --> 00:29:36,455
Chỉ để cho bạn thấy rằng biểu mẫu được gửi một cách chính xác,

344
00:29:36,455 --> 00:29:44,760
tôi sẽ đăng nhập giá trị vào giao diện điều khiển, giao diện điều khiển JavaScript.

345
00:29:44,760 --> 00:29:50,200
Sau đó, tôi sẽ nói, này.Feedbackform.reset.

346
00:29:51,320 --> 00:30:00,405
Phương pháp đặt lại cho phép bạn đặt lại biểu mẫu về trạng thái bình thường của nó,

347
00:30:00,405 --> 00:30:03,000
xóa tất cả các mục mà bạn đã thực hiện trong biểu mẫu.

348
00:30:03,000 --> 00:30:05,480
Vì vậy, một khi người dùng gửi,

349
00:30:05,480 --> 00:30:09,030
bạn thường sẽ nắm bắt các giá trị và sau đó đặt lại biểu mẫu để

350
00:30:09,030 --> 00:30:14,365
đầu vào thêm có thể được thực hiện dưới dạng một biểu mẫu riêng biệt.

351
00:30:14,365 --> 00:30:17,450
Vì vậy, đó là phương pháp thiết lập lại mà chúng tôi sẽ sử dụng ở đây.

352
00:30:17,450 --> 00:30:19,265
Vì vậy, với những thay đổi này, chúng

353
00:30:19,265 --> 00:30:23,900
ta hãy lưu các thay đổi và sau đó đi và xem hình thức của chúng tôi trong hành động.

354
00:30:23,900 --> 00:30:30,080
Một điều nhỏ cuối cùng mà tôi muốn thêm vào mẫu của tôi là để hiển thị cho

355
00:30:30,080 --> 00:30:36,200
bạn các giá trị biểu mẫu bên trong biểu mẫu của tôi,

356
00:30:36,200 --> 00:30:38,230
mặc dù trong một ứng dụng thực sự,

357
00:30:38,230 --> 00:30:42,580
bạn sẽ không làm điều này nhưng tôi chỉ muốn minh họa cho bạn làm thế nào

358
00:30:42,580 --> 00:30:47,165
bạn có thể nhìn thấy các giá trị của FeedbackForm trực tiếp ở đây,

359
00:30:47,165 --> 00:30:49,095
từ Mô hình FeedbackForm.

360
00:30:49,095 --> 00:30:52,395
Vì vậy, tôi có thể làm ở trong này.

361
00:30:52,395 --> 00:31:02,625
Tôi có thể nói Feedbackform.Value và piped qua json để hiển thị ở đây.

362
00:31:02,625 --> 00:31:08,435
Tương tự như vậy, tôi có thể làm ở đây, FeedbackForm.

363
00:31:08,435 --> 00:31:15,840
Có một thuộc tính khác liên kết với mô hình biểu mẫu

364
00:31:15,840 --> 00:31:20,440
đó gọi là trạng thái, cho tôi thấy trạng thái của biểu mẫu tại thời điểm này, cho

365
00:31:20,440 --> 00:31:22,265
dù nó là hợp lệ hay không hợp lệ.

366
00:31:22,265 --> 00:31:26,900
Vì vậy, tôi sẽ thêm hai vào biểu mẫu của tôi ở đây,

367
00:31:26,900 --> 00:31:30,285
do đó điều này sẽ được hiển thị trong mẫu của tôi.

368
00:31:30,285 --> 00:31:34,670
Đây chỉ là để cung cấp cho bạn xem tức thời về những gì mô

369
00:31:34,670 --> 00:31:41,620
hình biểu mẫu chứa trong tập tin kịch bản kiểu của tôi.

370
00:31:42,460 --> 00:31:47,590
Hãy lưu các thay đổi và đi và xem nhanh vào biểu mẫu của chúng tôi.

371
00:31:47,590 --> 00:31:50,325
Quay trở lại trình duyệt của chúng tôi,

372
00:31:50,325 --> 00:31:55,630
bây giờ bạn có thể thấy rằng các giá trị biểu mẫu đang được hiển thị

373
00:31:55,630 --> 00:32:04,460
ở đây và biểu mẫu là ở dạng tốt để cho phép chúng tôi gõ vào các giá trị.

374
00:32:04,460 --> 00:32:08,660
Vì vậy, hãy gõ vào một số giá trị ngẫu nhiên ở đây và bạn có thể

375
00:32:08,660 --> 00:32:14,090
ngay lập tức thấy giá trị đang được phản ánh trong mô hình FeedbackForm ở đó,

376
00:32:14,090 --> 00:32:24,020
ngay ở trên cùng và email.

377
00:32:26,050 --> 00:32:29,295
Không quan trọng, chỉ cần gõ một cái gì đó.

378
00:32:29,295 --> 00:32:31,680
Sau đó, chuyển đổi chuyển đổi này,

379
00:32:31,680 --> 00:32:34,575
bạn có thể thấy rằng khi bạn bật và tắt nó,

380
00:32:34,575 --> 00:32:39,385
đồng ý lần lượt thay đổi từ sai sang đúng.

381
00:32:39,385 --> 00:32:43,030
Vì vậy, hãy để tôi để nó ở đúng và sau đó chọn.

382
00:32:43,030 --> 00:32:50,640
Hãy để tôi chọn email và sau đó bạn thấy rằng loại liên hệ ở đây đã thay đổi thành email.

383
00:32:50,640 --> 00:32:56,060
Vì vậy, đây là cách bạn sẽ chọn để thay đổi giá trị.

384
00:32:56,060 --> 00:33:00,575
Vì vậy, chúng ta hãy nói email và sau đó ở đây,

385
00:33:00,575 --> 00:33:01,940
chúng ta có thể gõ vào tin nhắn.

386
00:33:01,940 --> 00:33:05,960
Một số văn bản ngẫu nhiên ở đây và bạn sẽ

387
00:33:05,960 --> 00:33:10,675
có thể thấy rằng văn bản ngẫu nhiên được phản ánh trong tin nhắn ở đó.

388
00:33:10,675 --> 00:33:12,690
Hãy gửi biểu mẫu.

389
00:33:12,690 --> 00:33:16,680
Vì vậy, khi bạn nhấp vào Gửi bạn ngay lập tức nhìn thấy trong giao diện điều khiển,

390
00:33:16,680 --> 00:33:20,605
giá trị được in ra đây,

391
00:33:20,605 --> 00:33:21,870
trong đối tượng này ở đây.

392
00:33:21,870 --> 00:33:27,155
Vì vậy, bạn có thể duyệt để xem tất cả các thuộc tính cho đối tượng đó,

393
00:33:27,155 --> 00:33:31,050
mô hình mẫu phản hồi.

394
00:33:31,050 --> 00:33:38,210
Vì vậy, đây là một minh họa của một hình thức phản ứng trong ứng dụng của chúng tôi.

395
00:33:38,210 --> 00:33:41,850
Điều này hoàn thành bài tập này.

396
00:33:41,850 --> 00:33:44,800
Trong bài tập này, chúng ta đã thấy làm thế nào chúng ta có thể tạo ra

397
00:33:44,800 --> 00:33:47,910
một hình thức phản ứng trong ứng dụng Angular của chúng tôi.

398
00:33:47,910 --> 00:33:52,910
Đây cũng là một điểm tốt mà tại đó bạn có thể thực hiện một Git cam kết với thông điệp,

399
00:33:52,910 --> 00:33:55,670
phản ứng tạo thành phần một.