angular.js - 在使用Angular开发中如何将数据注入$rootScope
PHP中文网
PHP中文网 2017-05-15 16:53:43
0
5
604

另外,是否有类似于main.js的那种js,里面可以去定义全局变量。例如var http = "www.xxxx.com/",可以使得其他的Ctrl.js,都可以调用。

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(5)
小葫芦

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

PHPzhong

$rootScope est un objet et peut être lié à des variables globales sous la forme de $rootScope.xxx='';

某草草

@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 :

  1. Conflit de noms. Les conflits de noms en JavaScript ne donneront aucun avertissement. Si votre projet est petit, la probabilité qu'ils se produisent est faible, mais il est très difficile à déboguer.
  2. Séquence d'initialisation. Si vous définissez une variable globale 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

我想大声告诉你
angular.module('app', []).run(function($rootScope) {
    $rootScope.http = 'www.xxxx.com/';
});
刘奇

Maintenant, Angularjs2 est sorti

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal