【发布时间】:2017-05-16 20:27:14
【问题描述】:
我目前正在使用 $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 可写?
希望这是有道理的,在此先感谢。
【问题讨论】:
-
你能创建一个plnkr.co 或jsfiddle.net 吗?
-
有一些技巧可以做到这一点,但在大多数情况下,这种方法表明某种糟糕的设计决策。您通常会在重新加载 URL 后将所需的状态保留为路由参数,然后使用 state.go() 设置 stateParams
标签: javascript angularjs angular-ui-router