Questions Management – Frontend – Xây dựng phần cập nhập option

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.

Để cập nhập một option trong phần Frontend của ứng dụng Questions Management, đầu tiên mình sẽ cần thêm mới trong class OptionsService một phương thức cho phép chúng ta có thể gọi tới API cập nhập option của API Option Service để truyền thông tin về option mà chúng ta cần cập nhập.

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

Tiếp theo chúng ta sẽ xây dựng form để cập nhập option.

Trong trang thông tin của một question, khi người dùng click vào nút Edit của mỗi option, mình sẽ cho popup một cửa sổ sử dụng Bootstrap Modal cho phép người dùng có thể cập nhập thông tin của option này. Có 3 thông tin trong cửa sổ này đó chính là description về option, là option đúng hay sai cho question này và một số ghi chú về option này.

Để làm được những điều trên, trong tập tin question.component.html trong thư mục src/app/questions/all_questions, mình sẽ thêm mới phần Bootstrap Modal này sau “<!– /.row –>” với nội dung như sau:

Để hiển thị popup này lên mình sẽ sửa lại code cho phần “Edit”, từ:

thành:

Như các bạn thấy, id của Bootstrap Modal này là “editOptionModal”. Mình đã định nghĩa thêm biến currentEditedOptionDescription trong class QuestionComponent để giữ thông tin về description của option mà chúng ta đang muốn cập nhập, biến currentEditedOptionNote để lưu giữ thông tin về note cho option này, biến currentEditedOptionIsCorrect để lưu giữ thông tin về option này là đúng hay sai:

Khi người dùng click vào nút “Edit” option thì ứng dụng của chúng ta sẽ gọi tới phương thức editOption() trong class QuestionComponent với tham số là đối tượng Option cần cập nhập. Bên trong phương thức editOption(), chúng ta cần khởi tạo một đối tượng Option để nắm giữ thông tin của option cần cập nhập và gán giá trị cho biến currentEditedOptionDescription, currentEditedOptionNote và currentEditedOptionIsCorrect như sau:

với biến editedOption được khai báo như sau:

Khi người dùng nhấn vào nút “Update”, phương thức updateOption() trong class QuestionComponent sẽ được gọi để thực hiện việc cập nhập option như sau:

với phương thức reload() có nội dung như sau:

Ở đây, sau khi người dùng cập nhập option thành công, chúng ta sẽ sử dụng đối tượng Router để reload lại trang thông tin của question hiện tại để thấy kết quả.

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

Giả sử mình có 1 question như sau:

Questions Management – Frontend – Xây dựng phần cập nhập option

Bây giờ mình sẽ edit option “Something about this option” của question này bằng cách nhấn vào nút Edit, kết quả sẽ như sau:

Questions Management – Frontend – Xây dựng phần cập nhập option

Sau khi đổi phần Description sang “Test option” và nhấn nút Update, kết quả sẽ như sau:

Questions Management – Frontend – Xây dựng phần cập nhập option

Add Comment