--- Tôi biết câu trả lời này không dành cho câu hỏi này, nhưng tôi muốn những người đọc câu hỏi này và muốn xử lý các Dịch vụ như Factories để tránh rắc rối khi làm điều này ----
Đối với điều này, bạn sẽ cần phải sử dụng một Dịch vụ hoặc Nhà máy.
Các dịch vụ là THỰC HÀNH TỐT NHẤT để chia sẻ dữ liệu giữa các bộ điều khiển không lồng nhau.
Một chú thích rất tốt về chủ đề này về chia sẻ dữ liệu là cách khai báo các đối tượng. Tôi đã không may mắn vì tôi đã rơi vào một cái bẫy AngularJS trước khi tôi đọc về nó, và tôi đã rất thất vọng. Vì vậy, hãy để tôi giúp bạn tránh rắc rối này.
Tôi đọc từ "ng-book: Cuốn sách hoàn chỉnh về AngularJS" rằng các mô hình ng AngularJS được tạo ra trong các bộ điều khiển dưới dạng dữ liệu trần là SAU!
Một phần tử $ scope nên được tạo như thế này:
angular.module('myApp', [])
.controller('SomeCtrl', function($scope) {
// best practice, always use a model
$scope.someModel = {
someValue: 'hello computer'
});
Và không như thế này:
angular.module('myApp', [])
.controller('SomeCtrl', function($scope) {
// anti-pattern, bare value
$scope.someBareValue = 'hello computer';
};
});
Điều này là do nó được đề xuất (THỰC HÀNH TỐT NHẤT) cho DOM (tài liệu html) để chứa các cuộc gọi dưới dạng
<div ng-model="someModel.someValue"></div> //NOTICE THE DOT.
Điều này rất hữu ích cho các bộ điều khiển lồng nhau nếu bạn muốn bộ điều khiển con của bạn có thể thay đổi một đối tượng từ bộ điều khiển chính ....
Nhưng trong trường hợp của bạn, bạn không muốn phạm vi lồng nhau, nhưng có một khía cạnh tương tự để đưa các đối tượng từ các dịch vụ đến bộ điều khiển.
Hãy nói rằng bạn có dịch vụ 'Factory' và trong không gian trả về có một objectA chứa objectB chứa objectC.
Nếu từ bộ điều khiển của bạn, bạn muốn NHẬN objectC vào phạm vi của mình, thì đó là một sai lầm khi nói:
$scope.neededObjectInController = Factory.objectA.objectB.objectC;
Điều đó sẽ không hoạt động ...
Thay vào đó chỉ sử dụng một dấu chấm.
$scope.neededObjectInController = Factory.ObjectA;
Sau đó, trong DOM bạn có thể gọi objectC từ objectA. Đây là một thực tiễn tốt nhất liên quan đến các nhà máy, và quan trọng nhất, nó sẽ giúp tránh các lỗi không mong muốn và không thể bắt được.