使用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
事件不会触发。
有两种方法可以工作。 第一个是自己打电话,第二个是等待文本框失去焦点。
检查这个问题 ; 同样的问题,不同的框架。