Tôi đã triển khai một ứng dụng đơn lẻ với AngularJS
. Trang bao gồm một khu vực nội dung ở giữa và các phần được lắp ráp xung quanh trung tâm hiển thị thông tin bổ sung và cung cấp phương tiện để thao túng trung tâm.Giao tiếp bộ điều khiển nặng trong AngularJS
Mỗi phần (gọi tắt là Side Info
) và khu vực nội dung có một bộ điều khiển riêng biệt AngularJS giao cho họ. Hiện tại, tôi liên lạc qua số $rootScope.$broadcast
và $scope.$on()
, ví dụ:
app.controller('PropertiesController', function ($scope, $rootScope) {
$scope.$on('somethingHappened', function(event, data){
// react
});
});
sau đó tôi gọi để giao tiếp với các bộ điều khiển khác:
$rootScope.$broadcast('somethingHappened', data);
Tôi có khá nhiều thông tin liên lạc xảy ra giữa Controllers. Đặc biệt là nếu có điều gì đó đang diễn ra trong khu vực nội dung, một số yếu tố thông tin phụ phải áp dụng. Cách khác xung quanh cũng thường xuyên: người dùng gửi biểu mẫu (nằm trong thông tin phụ) và khu vực nội dung cũng như các yếu tố thông tin phụ khác phải áp dụng.
Câu hỏi của tôi: Có cách nào tốt hơn để xử lý SPA
với giao tiếp bộ điều khiển nặng không?
Mã hoạt động tốt nhưng đã trở nên lộn xộn một chút (ví dụ: khó có thể tìm thấy sự kiện nào được xử lý ở đâu, v.v.). Kể từ khi ứng dụng có khả năng phát triển rất nhiều trong những tuần tới, tôi muốn thực hiện những thay đổi đó (nếu có bất kỳ giải pháp nào tốt hơn) càng sớm càng tốt.
Tôi đang làm dự án Angular đầu tiên của mình bao gồm trong việc tạo ra một ứng dụng onepage. Tôi đang tạo mẫu bên trong các mẫu và tôi xử lý tất cả các phạm vi từ các chỉ thị thành một mảng. Sau đó, tôi có thể nắm bắt và sửa đổi chúng. không biết nếu đó là một cách tốt hay nếu nó có thể giúp bạn. – nada
Sử dụng dịch vụ dùng chung là một cách khác để giao tiếp –
Thông thường, bạn có thể đặt những thứ được chia sẻ vào PagesController cấp cao. Vì vậy, bạn có thể dễ dàng truy cập vào chúng thông qua phạm vi. Đôi khi, bạn có thể thêm một số dịch vụ sẽ chia sẻ các biến trạng thái. – dubadub