javascript - Ionic中为何在app.js的.run()中用定义了全局变量,在页面的控制器中能访问到,但刷新后访问不到?
怪我咯
怪我咯 2017-06-12 09:22:30
0
1
741

在 app.js 的 .run() 函数中用 $rootScope.obj1 = {} 预定义了全局变量,第一次启动程序时,在页面的 .controller() 函数中是能够访问到 $rootScope.obj1 的。但在浏览器上刷新页面后,该页面的 .controller() 函数中访问到的 $rootScope.obj1 却变成了 undefined。

开始以为刷新时 app.js 的 .run() 函数没有被执行,经测试发现是有执行的。但刷新时执行的顺序好像是:先执行该页面的 .controller() 函数,然后再执行 app.js 中的 .config() 函数,再然后是 app.js 中的 .run() 函数。跟第一次启动程序时不同。因为这样的先后顺序关系,故而导致了刷新页面后,在页面的 .controller() 函数中访问不到预定义的全局变量了。

请问,事实的确是这样的吗?如果是的话,又该如何解决这样的问题呢?预定义的全局变量究竟要放在哪里才好?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
左手右手慢动作

angular.js的执行顺序大概如下:

  1. app.config()

  2. app.run()

  3. 指令编译

  4. app.controller()

  5. 指令link

很难进行你的问题判断,我猜想可能是不是因为你.js加载顺序问题呢。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板