Injecting the Service

Một lần nữa chúng ta xem lại minh họa dưới đây, chúng ta đã thấy làm thể nào để đăng ký một service với Angular injector. Bây giờ, chúng ta cần định nghĩa nó như một dependency vì vậy injector sẽ cung cấp thể hiện trong những class mà cần nó.

Vậy, làm thế nào để chúng ta làm dependency injection trong Angular? Vâng, câu hỏi tốt hơn là làm thế nào để chúng ta làm dependency injection trong Typescript?

Câu trả lời là, trong hàm khởi tạo (contructor). Mỗi một class có một contructor cái mà được thực thi khi một thể hiện của class được tạo ra. Nếu không có contructor rõ ràng nào được định nghĩa cho class, một contructor ẩn sẽ được sử dụng. Cho đến nay chúng ta vẫn chưa cần một contructor cụ thể, nhưng nếu chúng ta muốn chèn thêm các phụ thuộc (inject dependencies) như một thể hiện của một dịch vụ, chúng ta cần một contructor rõ ràng. Trong TypeScript, một contructor được định nghĩa bởi hàm contructor. Chúng ta sẽ đặt gì bên trong hàm contructor? Ít nhất có thể. Vì hàm contructor được thực hiện khi component được tạo ra. Nó chủ yếu được sử dụng để khởi tạo, và không nên cho những đoạn code chiếm nhiều thời gian thực hiện vào. Chúng ta xác định các phụ thuộc (dependencies) bằng cách xác định chúng như các tham số cho hàm contructor, như dưới đây.

Ngoài ra chúng ta có thể khai báo ngắn gọn hơn cho hàm contructor như dưới đây.

Như vậy chúng ta đã tạo được một thể hiện của ProductService là _productService. Và chúng ta đã có thể sử dụng thể hiện của service này. Tham khảo code ứng dụng mẫu để biết thêm về cách áp dụng service vào thực tế ứng dụng của chúng ta.

Last updated