Rumah > Soal Jawab > teks badan
另外,是否有类似于main.js的那种js,里面可以去定义全局变量。例如var http = "www.xxxx.com/"
,可以使得其他的Ctrl.js,都可以调用。
高洛峰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/';
});