Rumah > Soal Jawab > teks badan
Selain itu, adakah terdapat js serupa dengan main.js di mana pembolehubah global boleh ditakrifkan? Contohnya, var http = "www.xxxx.com/"
boleh menjadikan Ctrl.js lain boleh dipanggil.
高洛峰2017-05-15 16:55:43
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
PHPz2017-05-15 16:55:43
$rootScope ialah objek dan boleh terikat kepada pembolehubah global dalam bentuk $rootScope.xxx='';
某草草2017-05-15 16:55:43
@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
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:
http://harttle.github.io/2015/06/07/angular-module.html
我想大声告诉你2017-05-15 16:55:43
angular.module('app', []).run(function($rootScope) {
$rootScope.http = 'www.xxxx.com/';
});