我目前正在使用$ 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);
}

09-25 17:26