sau khi thử nghiệm một chút công bằng, hóa ra việc nhận sự kiện cho dịch vụ có thể được thực hiện bằng mã tối thiểu.
mã dịch vụ mẫu sau trong trường hợp bất kỳ ai khác thực hiện điều này.
Mẫu tiết kiệm và phục hồi các mô hình dịch vụ để lưu trữ địa phương khi nó được phát sóng tương ứng
app.factory('userService', ['$rootScope', function ($rootScope) {
var service = {
model: {
name: '',
email: ''
},
SaveState: function() {
sessionStorage.userService = angular.toJson(service.model);
},
RestoreState: function() {
service.model = angular.fromJson(sessionStorage.userService);
}
}
$rootScope.$on("savestate", service.SaveState);
$rootScope.$on("restorestate", service.RestoreState);
return service;
}]);
Tại sao bạn không chỉ đơn giản là tiêm dịch vụ vào điều khiển và để điều khiển cuộc gọi phương thức dịch vụ. Bạn không cần sử dụng bất kỳ sự kiện nào. (BTW, dịch vụ sẽ không được tạo nếu bạn không tiêm vào thứ gì đó ...) – Tosh
Tôi có nhiều bộ điều khiển và mỗi bộ điều khiển đều có dịch vụ, tất cả các dịch vụ cần được thông báo. không chỉ là bộ điều khiển đang hoạt động – Anton
@Anton: Các dịch vụ là các trình đơn mặc định - vì vậy việc thay đổi một biến dịch vụ trong một bộ điều khiển sẽ thay đổi nó ở mọi nơi (kể từ cùng một đối tượng). – ganaraj