2014-05-16 21 views
16

Có hai cách (AFAIK) để kết hợp bộ điều khiển với mẫu xem/một phần: tuyến đường được chỉ định trong $routeProvider và chỉ thị ngController. Đặc biệt (nhưng không dành riêng) cho việc định tuyến đơn giản, có lợi ích/hiệu quả nào của cái này với cái kia không?

Dự án của tôi hiện đang sử dụng phương thức $ routeProvider, nhưng tôi đã được giao nhiệm vụ làm tổ. Điều này có vẻ đơn giản, đủ với ngInclude, miễn là một phần xác định ngController của nó.

Trả lời

5

Nếu bạn nghĩ về một chế độ xem bao gồm tất cả các tập lệnh dưới dạng gói độc lập, được phát triển bởi một người hoặc một nhóm, thì ngController là cách để thực hiện.

$routeProvider mặt khác cung cấp cho bạn các tính năng nâng cao như tiêm giá trị thông qua thuộc tính resolve của tuyến đường. Bằng cách đó, bạn có thể có dữ liệu được nạp AJAX của bạn trực tiếp được chèn vào bộ điều khiển của bạn, ví dụ, thay vì bộ điều khiển có dữ liệu để có được chính nó. Hoặc có sự thay đổi lộ trình để chờ đợi dữ liệu, vv

Btw: Nếu bạn cần định tuyến và quan điểm lồng nhau, bạn có thể có một cái nhìn tại angular ui-router

+0

Cảm ơn rất nhiều cho câu trả lời này! Tôi hiện đang sử dụng $ stateProvider thay vì $ routeProvider, điều tương tự cũng áp dụng ở đây? – 0x1ad2

13

Câu hỏi này thực sự đi kèm với thiết kế và do đó, đó là một ý kiến ​​dựa trên bit. Xin lưu ý rằng, hướng dẫn tốt nhất tôi biết là:

  • $routeProvider - Cho phép bạn chỉ định một bộ điều khiển cho mẫu. Vì đây là một phần của định tuyến nên việc tìm bộ điều khiển đi kèm với trang trở nên dễ dàng. Tôi sử dụng điều này để lưu trữ và tải logic trang tổng thể thay vì logic của phần tử cụ thể. Điều này cũng rất quan trọng bởi vì nó có nghĩa là bạn có thể tải cùng một mẫu chính xác cho hai tuyến khác nhau nhưng hành vi và dữ liệu có thể khác nhau vì bộ điều khiển có thể được thay đổi. Đây không phải là điều dễ thực hiện với tùy chọn ngController.

  • ngController - Điều này sẽ điều khiển bộ điều khiển thành một phần tử cụ thể trên trang/mẫu. Điều đó có thể làm cho mã dễ đọc hơn khi bạn cần nhiều bộ điều khiển trên một trang và nó cho phép bộ điều khiển được cụ thể hơn.

Vì vậy, nó thực sự đi xuống đến phạm viý định. Hy vọng rằng các quy tắc này sẽ giúp khi quyết định sử dụng.

Các vấn đề liên quan