Questions Management – Frontend – Xây dựng phần thêm mới question

Xem toàn bộ series bài viết hướng dẫn xây dựng ứng dụng Questions Management tại đây.

Sau khi đã xây dựng giao diện cho phần thêm mới question, giờ là lúc chúng ta đi vào thực hiện các chức năng của phần thêm mới question này các bạn nhé.

Đầu tiên, mình sẽ thêm vào class QuestionsService một phương thức cho phép chúng ta có thể gọi tới API thêm mới một question của API Question Service để truyền thông tin về question mà chúng ta cần thêm mới.

Cụ thể method này như sau:

Bởi vì mình muốn sau khi thêm mới question thành công, ứng dụng của chúng ta sẽ redirect tới trang thông tin chi tiết của một question nên trong phương thức trên, mình đã lấy kết quả trả về từ API Question Service.

Tiếp theo chúng ta sẽ sửa lại form thêm mới question trong tập tin new_question.component.html cho phép chúng ta có thể hiển thị thông tin tất cả các category có trong hệ thống:

với biến categories được khai báo trong class NewQuestionComponent như sau:

Giá trị của biến categories sẽ được lấy từ API Category Service sử dụng API lấy tất cả category của service này như sau:

Bây giờ chúng ta sẽ đi vào phần thực hiện chức năng thêm mới question.

Trong form thêm mới question, chúng ta sẽ khai báo những biến lưu giữ giá trị của description và category mà người dùng nhập vào bằng cách sử dụng directive ngModel của Angular như sau:

Như các bạn thấy, mình cũng đã sửa lại nội dung của button “Add New Question” cho phép khi người dùng khi click vào button này thì ứng dụng của chúng ta sẽ gọi đến method createNewQuestion() trong class NewQuestionComponent để thực hiện việc thêm mới question.

Nội dung của class NewQuestionComponent sẽ được sửa lại như sau:

Như mình đã nói ở trên, sau khi thêm mới thành công question, ứng dụng của chúng ta sẽ redirect tới trang thông tin của question nên trong class NewQuestionComponent trên, mình đã khai báo class Router và sử dụng phương thức navigate() của class này để redirect tới URL “/question/{id}” sau khi nhận response thành công từ API Question Service.

OK, vậy là chúng ta đã hiện thực xong phần thêm mới question trong phần Frontend của ứng dụng Questions Management rồi đó các bạn. Thử test xem sao nhé!

Trong trang “New Question”, sau khi nhập thông tin về question cần thêm mới:

Questions Management – Frontend – Xây dựng phần thêm mới question

và nhấn nút “Add New Question”, ứng dụng của chúng ta sẽ tự redirect tới trang thông tin của question này như sau:

Questions Management – Frontend – Xây dựng phần thêm mới question

Có một phần nữa là trong trang “All Questions”, chúng ta cũng có button “Add New”:

Questions Management – Frontend – Xây dựng phần thêm mới question

để chúng ta gọi đến trang thêm mới question, nên mình sẽ sửa lại code của button này như sau:

Bây giờ thì các bạn có thể từ trang “All Questions” gọi tới trang thêm mới question rồi.

Add Comment