Controller Trong AngularJS
Ngày cập nhật: 12-12-2015 | Số lần xem: 11465 | Phân loại: AngularJS
Tìm kiếm
Controller là một phần quan trọng trong kiến trúc của AngularJS, và có một số công việc cụ thể mà bạn nên giao cho nó:
- Thiết lập trạng thái ban đầu cho đối tượng
$scope
. - Thêm các hành vi (behavior) vào đối tượng
$scope
.
Cách định nghĩa controller
Dưới đây là cách được khuyến khích sử dụng khi định nghĩa một controller trong AngularJS:
|
|
Cách này đảm bảo rằng controller được gắn với một module cụ thể và hỗ trợ tốt hơn cho dependency injection.
Một cách không được khuyến khích:
|
|
Lý do tại sao bạn nên tránh cách định nghĩa như trên:
- Đây là một controller toàn cục và không được đăng ký với bất kỳ module nào.
- Không hỗ trợ dependency injection — điều này gây khó khăn khi test hoặc mở rộng ứng dụng.
Những điều không nên để controller làm
Controller chỉ nên chứa logic kinh doanh (business logic), không phải mọi thứ! Dưới đây là những công việc bạn không nên giao cho controller:
- Thao tác trực tiếp với DOM – Controller không nên chứa logic liên quan đến giao diện người dùng. Việc thao tác DOM thủ công sẽ làm giảm khả năng kiểm thử và đi ngược lại nguyên lý databinding mạnh mẽ của AngularJS. Thay vào đó, hãy sử dụng directive để đóng gói các thao tác DOM phức tạp.
- Định dạng dữ liệu đầu vào – Hãy sử dụng các control form của AngularJS thay vì tự xử lý.
- Lọc dữ liệu đầu ra – Sử dụng filter của AngularJS thay vì viết code thủ công.
- Chia sẻ trạng thái giữa các controller – Để thực hiện điều này, hãy sử dụng service của AngularJS, chúng giúp tái sử dụng logic và chia sẻ trạng thái một cách hiệu quả.
- Quản lý vòng đời của các thành phần khác – Ví dụ như tạo instance service hay quản lý lifecycle component, điều này nên để cho các service hoặc directive đảm nhiệm.