rootScope 在更改路由时变得未定义
rootScope gets undifined when changing route
所以,当我的用户登录时,我有这个代码
var promise = UserFactory.doLogin(userCredentials);
promise.success(function (data, status) {
//set some localstorage vars
//only on login's success get additional data
var anotherPromise = UserDataFactory.getUserData();
anotherPromise.success(function (data, status){
if(data.code == 2){
$rootScope.userHead = true;
}
});
$rootScope.userHead = true;
将根据其值(真/假)显示/隐藏子菜单。子菜单的 HTML 是
<div class="panel panel-default text-center" style="text-align: center;" ng-hide="userHeader">
某些带有 <div id="submenu" ng-include="'submenu.html'" ></div>
的页面中。这些页面在这样的路线中
.when('/user', {
templateUrl: 'user.html',
controller: 'userController',
animation: 'second',
access: {
requiredLogin: true
}
})
//user.html includes menu with ng-include="'submenu.html'"
当我转到用户页面时,$rootScope.userHead
有一个值,子菜单按原样隐藏。如果我点击刷新,$rootScope.userHead
undifined
,我可以看到子菜单。
我没有看到任何覆盖$rootScope.userHead
.当我转到另一个页面时,它会失去其价值吗?它不应该保持它的价值吗?
我错过了什么?我该如何解决这个问题?
谢谢
如果您重新加载页面,存储在 JavaScript 变量中的所有信息都将丢失。 $rootScope
只不过是JavaScript中的一个变量。如果要存储保留页面重新加载的内容,则至少存在以下可能性:
- 使用Cookie(在Angular中您可以使用$cookieStore)
- 使用一些新的HTML5功能,如Locale Storage,Web DB或旧的DOM存储(http://en.wikipedia.org/wiki/Web_storage)
- 将数据存储在服务器上
- 纳存储
作者:米歇尔。
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- Angular JS TypeError:无法读取路由上未定义的属性“id”
- 使用路由的未定义服务控制器
- rootScope 在更改路由时变得未定义
- Ember Data 1.0 加载路由时出错:类型错误:无法设置未定义的属性“类型键”
- 无法读取路由参数中未定义的属性“名称”
- Ember:处理路由时出错:未定义
- `expressJS路由处理程序中未定义this
- 角度路由解析返回未定义
- EmberJS控制台错误-加载路由时出错:未定义
- angularjs路由不起作用参数'CatCtrl'不是函数,未定义
- AngularJS/Restangular路由“;无法设置属性'路由'“未定义”;
- 流星路由器路由属性未定义
- req.url.indexOf('?')在尝试使用Express路由到控制器时抛出未定义错误.路由器和护
- 路由未定义在谷歌地图API,而发现两个地方之间的持续时间
- 如何摆脱“幽灵”?koa-router添加而未定义的路由
- 对快速路由使用回调函数时的未定义参数
- Ember JSON加载问题-加载路由时出错:未定义