Javascript 在爱奥尼亚(Angular),我可以’;t从模板访问预定义的全局变量’;刷新后返回s.controller()。为什么?

Javascript 在爱奥尼亚(Angular),我可以’;t从模板访问预定义的全局变量’;刷新后返回s.controller()。为什么?,javascript,angular,ionic-framework,refresh,rootscope,Javascript,Angular,Ionic Framework,Refresh,Rootscope,在Ionic中,我在app.js的.run()中预定义了一个全局变量,如$rootScope.obj1={},当首次加载web应用程序时,可以在模板的.controller()中访问该变量 但在用户在浏览器中刷新该页面后,.controller()中的相同访问会得到一个“未定义”的结果 我曾经想知道刷新期间是否没有调用.run()函数。但是经过一些测试,我发现它被调用了。当我刷新页面时,调用的顺序似乎是:页面的.controller(),然后是app.js中的.config(),然后是app.j

在Ionic中,我在app.js的.run()中预定义了一个全局变量,如$rootScope.obj1={},当首次加载web应用程序时,可以在模板的.controller()中访问该变量

但在用户在浏览器中刷新该页面后,.controller()中的相同访问会得到一个“未定义”的结果

我曾经想知道刷新期间是否没有调用.run()函数。但是经过一些测试,我发现它被调用了。当我刷新页面时,调用的顺序似乎是:页面的.controller(),然后是app.js中的.config(),然后是app.js中的.run(),这与第一次加载不同,在第一次加载期间,.run()在.controller()之前被调用。这就是为什么我无法再次访问.controller()中的$rootScope.obj1


我想的是真的吗?如果是这样,我该如何解决这个问题?在最佳实践中,预定义的全局变量应该放在哪里?

我怀疑刷新后的顺序会有所不同。可能是比赛条件(尝试几次刷新),但我需要您的示例代码来查看。感谢您如此迅速的回复!运行(函数($ionicPlatform,$rootScope){$rootScope.runningMode=0;});controllers.js.controller(“OrdersCtrl”,函数($scope,$rootScope){alert($rootScope.runningMode);});第一次,我得到一个“0”。刷新后,我得到了一个“未定义”的回复。谢谢你这么及时的回复
code
app.js.run(函数($ionicPlatform,$rootScope){$rootScope.runningMode=0;});controllers.js.controller(“OrdersCtrl”,函数($scope,$rootScope){alert($rootScope.runningMode);})<代码>代码第一次,我得到一个“0”。刷新后,我得到一个“未定义”。请编辑您的问题,无法读取注释XDapp.js.run中的代码(函数($ionicPlatform,$rootScope){$rootScope.runningMode=0;});controllers.js.controller(“OrdersCtrl”,函数($scope,$rootScope){alert($rootScope.runningMode);});