Ideanya salah, tidak perlu mentakrifkan pembolehubah global dalam angular. Data anda hendaklah disediakan melalui service, factory, provider.
Dan perkara-perkara ini boleh disuntik kebergantungan, jadi tidak ada keperluan untuk pembolehubah global sama sekali
@leftstick betul, AngularJS menggunakan gaya suntikan kebergantungan untuk menstruktur keseluruhan rangka kerja aplikasi Sebaik-baiknya jangan mengisytiharkan pembolehubah global, tetapi menjadikannya sebagai Perkhidmatan. Dengan cara ini anda boleh mengelakkan banyak masalah:
Konflik penamaan. Menamakan konflik dalam JavaScript tidak akan memberikan sebarang amaran Jika projek anda kecil, kebarangkalian kejadian adalah kecil, tetapi sangat sukar untuk nyahpepijat.
Jujukan permulaan. Jika anda mentakrifkan pembolehubah global ACtrl dalam window.a, contohnya, jika anda ingin menggunakannya dalam BCtrl, maka anda perlu memastikan bahawa ACtrl dilaksanakan sebelum BCtrl Ini selalunya sukar dicapai , malah secara logiknya mengelirukan.
Dalam Sudut, cara yang paling munasabah ialah menjadikan a menjadi aService dan menyuntiknya ke dalam ACtrl dan BCtrl.
Bagaimana untuk menentukan perkhidmatan dan hubungan antara Modul, Perkhidmatan, Kilang dan Pembekal boleh merujuk blog ini:
Ideanya salah, tidak perlu mentakrifkan pembolehubah global dalam
angular
. Data anda hendaklah disediakan melaluiservice
,factory
,provider
.Dan perkara-perkara ini boleh disuntik kebergantungan, jadi tidak ada keperluan untuk pembolehubah global sama sekali
$rootScope ialah objek dan boleh terikat kepada pembolehubah global dalam bentuk $rootScope.xxx='';
@leftstick betul, AngularJS menggunakan gaya suntikan kebergantungan untuk menstruktur keseluruhan rangka kerja aplikasi Sebaik-baiknya jangan mengisytiharkan pembolehubah global, tetapi menjadikannya sebagai Perkhidmatan. Dengan cara ini anda boleh mengelakkan banyak masalah:
ACtrl
dalamwindow.a
, contohnya, jika anda ingin menggunakannya dalamBCtrl
, maka anda perlu memastikan bahawaACtrl
dilaksanakan sebelumBCtrl
Ini selalunya sukar dicapai , malah secara logiknya mengelirukan.Dalam Sudut, cara yang paling munasabah ialah menjadikan
a
menjadiaService
dan menyuntiknya ke dalamACtrl
danBCtrl
.Bagaimana untuk menentukan perkhidmatan dan hubungan antara Modul, Perkhidmatan, Kilang dan Pembekal boleh merujuk blog ini:
http://harttle.github.io/2015/06/07/angular-module.html
Kini angularjs2 keluar