Maison > Questions et réponses > le corps du texte
另外,是否有类似于main.js的那种js,里面可以去定义全局变量。例如var http = "www.xxxx.com/"
,可以使得其他的Ctrl.js,都可以调用。
高洛峰2017-05-15 16:55:43
L'idée est fausse, il n'est pas nécessaire de définir des variables globales dans angular
. Vos données doivent être fournies via service
, factory
, provider
.
Et ces choses peuvent être injectées en dépendance, donc il n'y a pas du tout besoin de variables globales
PHPz2017-05-15 16:55:43
$rootScope est un objet et peut être lié à des variables globales sous la forme de $rootScope.xxx='';
某草草2017-05-15 16:55:43
@leftstick a raison, AngularJS utilise le style d'injection de dépendances pour structurer l'ensemble du framework d'application. Il est préférable de ne pas déclarer de variables globales, mais d'en faire un service. De cette façon, vous pouvez éviter beaucoup de problèmes :
ACtrl
dans window.a
, par exemple, si vous souhaitez l'utiliser dans BCtrl
, alors vous devez vous assurer que ACtrl
est exécuté avant BCtrl
. C'est souvent difficile à réaliser. , même logiquement déroutant. En Angular, le moyen le plus raisonnable est de transformer a
en aService
et de l'injecter dans ACtrl
et BCtrl
.
Comment définir un service et la relation entre Module, Service, Usine et Fournisseur peut se référer à ce blog :
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/';
});