【问题标题】:Angular redirect to current page角度重定向到当前页面
【发布时间】:2016-01-15 04:10:35
【问题描述】:

我有一个模式,我使用自定义指令在提交后关闭模式。这行得通。接下来,我想知道如何才能以角度刷新用户所在的当前页面。我试过 $location.path("/");它可以工作,但它重定向到根页面而不是用户当前所在的任何页面。我该怎么做才能重定向到当前页面。

网址如下所示 index.angular.html#/profile/

自定义指令看起来像这样

// Custom directive to close modal upon submit
app.directive('myModal', function($location) {
   return {
     restrict: 'A',
     link: function(scope, element, attr) {
       scope.dismiss = function() {
           element.modal('hide');
           $location.path("/");
       };
     }
 };
});

【问题讨论】:

  • 虽然解决方案很简单?你为什么要这样做?在angular中维护状态应该不难
  • 我正在使用模式向我在 UI 中显示的数据库添加一条记录。从技术上讲,如果我只需要更新绑定到我正在显示的表的 $scope,那么只刷新我正在使用的 $scope 会更好吗?如果有怎么办?
  • 您可以使用回调函数(success) 并更新model

标签: javascript angularjs


【解决方案1】:

你可以只使用 $window 服务吗?

$window.location.reload();

不要忘记您需要将 $window 注入到您的指令中。

【讨论】:

  • 我猜他不能。因为加载模式后,URL 会发生变化。它只是重新加载模态的 URL。
  • 让我们看看...您可能是对的,但是模态通常不会触及主页上的 url ...它会加载视图,然后将整个内容弹出到几个 div 中.一旦模态 div 被删除,他想用当前 url 刷新页面。
  • 通常,是的,这就是“模态”应该做的。但我猜 OP 使用了他自己的神秘类型的模式,可能会触及 URL。这就是为什么仅仅.modal('hide')ing 是不够的。
  • 没办法,伙计……我赌 1 美元,一旦他从午睡中醒来,他就会带着“感谢小费”回来;-)
  • 糟糕...我已经输了!他只是将 cmets 中的问题更改为“如果我只想更新范围而不是刷新窗口,我该怎么做”...
【解决方案2】:

这在类似的情况下对我有用。

  this.router.navigate(['path/to'])
            .then(() => {
              window.location.reload();
            });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    相关资源
    最近更新 更多