我正在使用angular 1.5.11和angular-ui-router 1.0.0-beta.3。
我实现了“websudo”,它类似于Github所做的 - 如果您上次登录很久以前,它会将您带到登录页面。重新登录后,它会将您带回到您所在的页面。问题是您所在的组件不应重新加载(这样您就可以恢复工作)。我已经尝试了以下内容,但在重新登录并重定向到组件的路径后,组件始终会重新加载:
$state.go('component.route', {}, {reload: false, notify: false});
是否有可能采用其他方式来实现此功能?
答案 0 :(得分:0)
如果将所有数据存储在从视图引用的工厂/服务中(注入到控制器中,然后从视图中放入工厂/服务中的范围和引用属性),那么只要页面是页面,数据就会保留。运行
JS
angular.module('myMod',[])
.service('PersistData', function(){
return {}
})
.controller('MyCtrl', function(PersistData){ this.PersistData = PersistData})
HTML
<div ng-app="myMod" ng-controller="MyCtrl as myCtrl">
<input type="text" ng-model="myCtrl.PersistData.first_name"/>
</div>
角度$injector
将在第一次引用时创建PersistData对象,然后保留对它的引用以获取/注入它(单例)。