我目前正在使用$ stateParams将id传递给新状态。工作正常,但如果用户重新加载页面怎么办?显然,$ stateParams中没有任何值。解决这个问题的方法是在初始页面加载时将$ stateParam id加载到localStorage。在重新加载时,如果$ stateParams的id不存在,则手动分配它。例如:
// Ensure params are set when page is reloaded
if (!$stateParams.id) {
$stateParams.id = localStorageService.get('campaignId');
$state.go($state.current, $stateParams);
}
在我的本地机器上运行。但是在我的开发服务器上,我收到了这个错误:
Cannot assign to read only property 'id' of object '#<Object>'
。
有没有办法让$ stateParams可写?
希望这是有道理的,先谢谢。
答案 0 :(得分:0)
由于我找不到实际写入$ stateParams的解决方案,我只是为这种情况创建了一个新对象。
var stateParamsClone = {};
// Ensure params are set when page is reloaded
if (!$stateParams.id) {
stateParamsClone.id = localStorageService.get('campaignId');
$state.go($state.current, stateParamsClone);
}
答案 1 :(得分:0)
这对我有用
let $stateParams = Object.assign({}, $transition$.params());