我使用ui-sref
,它将两个字符串和一个对象作为参数。在正常情况下一切正常,但是当我刷新浏览到对象的页面上的浏览器变为空时。
刷新后,URL中的两个字符串很好。有没有办法让页面刷新后对象在$stateparams
中保持不变。我尝试了几个选项,例如$rootscope.$stateparams = $stateparams
,我尝试过使用某项服务,但刷新时会被删除。使用本地存储不是一种选择。
.state('edit', {
url: '/editItem/:id?userId',
templateUrl: 'app/items/edit.html',
controller: 'editController',
controllerAs: 'vm',
params: {
id: "",
userId: "",
userObject: null,
}
})
我真的只需要持续重装的对象。我使用的是UI-router 1.0.0-beta.2
答案 0 :(得分:-1)
如果您希望每次都使用您所在州的网址参数,则可以使用resolve
功能:
.state('edit', {
url: '/editItem/:id/:userId',
templateUrl: 'app/items/edit.html',
controller: 'editController',
controllerAs: 'vm',
resolve: {
testObject: function($stateParams) {
return {
id: $stateParams.id,
userId: $stateParams.userId
}
}
}
})
现在,您可以将testObject
作为依赖关系传递给editController
,并且每次解析此路线后,您的控制器中的值都将显示为testObject.id
和{{1} }
如果要将对象从一个状态传递到下一个状态,请以编程方式使用testObject.userId
:
$state.go
唯一的另一个选择是缓存,通过Localstorage或cookies