我目前正在使用$ 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可写?
希望这有意义,在此先感谢。
最佳答案
由于找不到实际写入$ stateParams的解决方案,因此我只为这种情况创建了一个新对象。
var stateParamsClone = {};
// Ensure params are set when page is reloaded
if (!$stateParams.id) {
stateParamsClone.id = localStorageService.get('campaignId');
$state.go($state.current, stateParamsClone);
}