angular.js - 在使用Angular开发中如何将数据注入$rootScope
PHP中文网
PHP中文网 2017-05-15 16:53:43
[AngularJS讨论组]

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

PHP中文网
PHP中文网

认证0级讲师

全部回复(5)
高洛峰

思路不对,angular中不需要定义全局变量。你的数据应该通过service, factory, provider来提供。
而这些东西是可以依赖注入的,所以压根不需要全局变量

PHPz

$rootScope是个对象,可以$rootScope.xxx='';的形式去绑定全局的变量

某草草

@leftstick 说的对,AngularJS使用依赖注入的风格来架构整个应用的框架,最好不要声明全局变量,而是把它做成Service。这样你能避免不少问题:

  1. 命名冲突。在javascript中命名冲突不会给出任何warning,如果你的项目不大出现概率较小,但非常难以调试。
  2. 初始化顺序。如果你在ACtrl中定义了一个全局变量window.a,比如你想在BCtrl中使用它,那么你需要保证ACtrlBCtrl之前得到执行,这往往是不好实现,甚至逻辑混乱的。

在Angular中,最合理的办法是把a做成一个aService,注入到ACtrlBCtrl之中。

如何定义一个service,以及Module、Service、Factory、Provider之间的关系可以参考这篇博客:

http://harttle.github.io/2015/06/07/angular-module.html

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

现在angularjs2 都出来了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号