加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何使用ui-router获取带Params的Previous状态

发布时间:2020-12-17 06:54:34 所属栏目:安全 来源:网络整理
导读:问题陈述 : 我有一个按钮“添加评论”,我应该能够只在我登录系统时添加评论. 但问题是我登录后无法回到“添加评论”页面,因为我不知道以前的状态还是无法获得以前的状态. 这有什么更清洁的解决方案吗?我应该有登录页面模式而不是新页面吗? 我已经看到了关
问题陈述 :

我有一个按钮“添加评论”,我应该能够只在我登录系统时添加评论.

但问题是我登录后无法回到“添加评论”页面,因为我不知道以前的状态还是无法获得以前的状态.

这有什么更清洁的解决方案吗?我应该有登录页面模式而不是新页面吗?

我已经看到了关于以前状态的所有问题以及可能的答案(是的,我正在考虑$roots roots和$stateChangeSuccess).但它没有明确提出解决方案.

其他可能的解决方案如下
http://christopherthielen.github.io/ui-router-extras/example/previous/index.html#

我也看到了
https://github.com/angular-ui/ui-router/issues/92.但同样,我不确定什么是正确的答案.

有人可以明确说明一个好的解决方案使用rootcope是一个好的吗?

解决方法

我应该有登录页面模式而不是新页面吗?这是一个设计决定.您可以拥有适合您应用的任何内容,并且符合您的喜好.

使用rootcope是一个好的吗?我觉得这是一个很好的解决方案.我是这样做的:

手动保存以前的状态:

创建状态更改侦听器:

$rootScope.$on('$stateChangeSuccess',function(event,to,toParams,from,fromParams) {
        //save the previous state in a rootScope variable so that it's accessible from everywhere
        $rootScope.previousState = from;
    });
  }]);

而不是使用ui-sref,为注释按钮添加一个单击功能.

$scope.commentHandler = function(){
    //check if user is logged in,let the user post the comment

    //else take him to login page
}

然后,您可以在用户登录后使用$state.go($rootScope.previousState.name)返回评论页面.

-要么 –

如果用户未登录,您可以提供一个小的登录框来代替“发表评论”按钮.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读