--- Saya tahu jawaban ini bukan untuk pertanyaan ini, tetapi saya ingin orang yang membaca pertanyaan ini dan ingin menangani Layanan seperti Pabrik untuk menghindari kesulitan melakukan hal ini ----
Untuk ini, Anda perlu menggunakan Layanan atau Pabrik.
Layanan adalah PRAKTEK TERBAIK untuk berbagi data antara pengontrol yang tidak bersarang.
Anotasi yang sangat bagus tentang topik ini tentang berbagi data adalah cara mendeklarasikan objek. Saya tidak beruntung karena saya jatuh dalam perangkap Angular sebelum saya membacanya, dan saya sangat frustrasi. Jadi izinkan saya membantu Anda menghindari masalah ini.
Saya membaca dari "buku-ng: Buku lengkap tentang AngularJS" bahwa model-AngularJS yang dibuat dalam pengontrol karena data kosong SALAH!
Elemen $ scope harus dibuat seperti ini:
angular.module('myApp', [])
.controller('SomeCtrl', function($scope) {
// best practice, always use a model
$scope.someModel = {
someValue: 'hello computer'
});
Dan tidak seperti ini:
angular.module('myApp', [])
.controller('SomeCtrl', function($scope) {
// anti-pattern, bare value
$scope.someBareValue = 'hello computer';
};
});
Ini karena direkomendasikan (PRAKTEK TERBAIK) agar DOM (dokumen html) mengandung panggilan sebagai
<div ng-model="someModel.someValue"></div> //NOTICE THE DOT.
Ini sangat membantu bagi pengendali bersarang jika Anda ingin pengendali anak Anda dapat mengubah objek dari pengendali induk ....
Tetapi dalam kasus Anda, Anda tidak ingin cakupan bersarang, tetapi ada aspek serupa untuk mendapatkan objek dari layanan ke pengendali.
Katakanlah Anda memiliki layanan Anda 'Pabrik' dan di ruang kembali ada objectA yang berisi objectB yang berisi objectC.
Jika dari controller Anda ingin MENDAPATKAN objectC ke dalam lingkup Anda, adalah kesalahan untuk mengatakan:
$scope.neededObjectInController = Factory.objectA.objectB.objectC;
Itu tidak akan berhasil ...
Alih-alih hanya menggunakan satu titik.
$scope.neededObjectInController = Factory.ObjectA;
Kemudian, di DOM Anda dapat memanggil objectC dari objectA. Ini adalah praktik terbaik terkait dengan pabrik, dan yang paling penting, ini akan membantu untuk menghindari kesalahan yang tidak terduga dan tidak dapat ditangkap.