【问题标题】:Redirect using AngularJS使用 AngularJS 重定向
【发布时间】:2012-08-08 03:03:29
【问题描述】:

我正在尝试使用以下方法重定向到另一条路线:

$location.path("/route");

但由于某种原因,它不起作用。我使用 jQuery-UI 做了一个自动完成小部件,一旦用户选择了一个选项,我就会从范围内调用一个函数。我对其进行了调试,它进入了函数,但它永远不会重定向到另一条路线。它只会在我按键时改变路线。

我觉得这有点奇怪,但我还没有想出如何解决这个问题。我用过

window.location = "#/route";

它可以工作,但我想使用path() 函数。

有人知道为什么会这样吗?

【问题讨论】:

    标签: angularjs redirect location


    【解决方案1】:

    通过不工作代码的示例,很容易回答这个问题,但有了这些信息,我认为最好的是您在 AngularJS 摘要之外调用 $location.path。

    尝试在指令 scope.$apply(function() { $location.path("/route"); }); 上执行此操作

    【讨论】:

    • 非常感谢您,很抱歉没有发布无效的示例。但这正是我的代码所需要的。
    • 知道如何让它在 $http 请求中的 .success 方法中工作吗? @番茄
    • 在 firefox (30~) 控制台上触发 $apply 周期忙的错误
    • 这应该如何工作?我收到以下错误:错误:[$rootScope:inprog] $apply already in progress errors.angularjs.org/1.2.15/$rootScope/inprog?p0=%24apply at angular.js:78 ..... 因此,它不能作为 windows.location = ''..
    • @NicholasKreidberg 有同样的问题,只是添加 $scope.$apply();就在 $location.path("/route"); 之后为我工作。
    【解决方案2】:

    不要忘记将$location 注入控制器。

    【讨论】:

    • 不错的收获——这对我来说是个问题。
    • 很好,感谢您发布此内容,看起来如此明显的事实并非如此。
    【解决方案3】:

    假设您没有使用 html5 路由,请尝试 $location.path("route")。 这会将您的浏览器重定向到#/route,这可能是您想要的。

    【讨论】:

      【解决方案4】:

      如果您需要重定向您的 Angular 应用程序,请使用 $window.location。那是我的情况;希望有人会觉得它有用。

      【讨论】:

        【解决方案5】:

        检查你的路由方法:

        如果你的路由状态是这样的

         .state('app.register', {
            url: '/register',
            views: {
              'menuContent': {
                templateUrl: 'templates/register.html',
              }
            }
          }) 
        

        那么你应该使用

        $location.path("/app/register");
        

        【讨论】:

          【解决方案6】:

          不知道你的代码很难说。我的最佳猜测是,当您从 JavaScript 代码更改文本框值时,onchange 事件不会触发。

          这有两种工作方式;第一种是自己调用onchange,第二种是等待文本框失去焦点。

          检查this question;同样的问题,不同的框架。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-07-17
            • 1970-01-01
            • 2015-07-17
            • 2014-09-23
            • 1970-01-01
            • 2014-09-07
            • 2016-06-26
            相关资源
            最近更新 更多