使用AngularJSredirect

我试图redirect到另一条路线使用:

$location.path("/route"); 

但由于某种原因,这是行不通的。 我使用jQuery-UI做了一个自动完成的小部件,一旦用户select了一个选项,我就从范围中调用一个函数。 我debugging它,它进入函数,但它永远不会redirect到其他路线。 当我按下一个键时,它只会改变路线。

我认为这有点奇怪,但我还没有想出如何解决这个问题。 我用了

 window.location = "#/route"; 

它的工作原理,但我想使用path()函数。

有谁知道为什么会发生这种情况?

以一个非工作代码的例子来说,回答这个问题很容易,但是我能想到的最好的信息就是你正在调用AngularJS摘要之外的$ location.path。

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

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

假设你没有使用html5路由,试试$location.path("route") 。 这将redirect您的浏览器#/route这可能是你想要的。

如果你需要redirect你的angular度应用程序使用$window.location 。 那是我的情况。 希望有人会觉得有用。

检查你的路由方法:

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

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

那么你应该使用

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

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

有两种方法可以工作。 第一个是自己打电话,第二个是等待文本框失去焦点。

检查这个问题 ; 同样的问题,不同的框架。