我有一个休息api,其中api正在发送重定向指令(301
正在发送)。
我的角度js代码是这样的:
var request = $http.post(LOGIN_URL,{username:'tes',password:'test'})
request.success(function(html)
{
if(html.failure) {
console.log("failure")
$scope.errorMessage = html.failure.message
}
else {
console.log("Success here....")
$location.path("route")
}
})
我可以在浏览器日志中看到它正在进入else部分(正在打印Success here.....
)。但网址没有改变。 $location.path
没有做任何事;我也试过了$location.url
,这也导致了同样的结果。
而且我正在向我的控制器注入$location
。
我犯错误的地方?
提前致谢。
答案 0 :(得分:1)
尝试这样的事情
$location.path("/myroute")
你也必须在页面上有一个ng-view。
答案 1 :(得分:1)
还要确保您具有该名称的相应视图 当您注册控制器时,您拥有“$ location”' var被注入控制器的声明中,如下例所示:
controllers.controller('MyCtrl', ['$scope', '$route', '$location', 'MYService',
function($scope, $route, $location, MyService) {
// ... controller code
}])
您也可能希望调试路由更改以查看位置更改侦听器发生的情况,如下例所示:
return app.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/home', {
templateUrl: 'partials/home.html',
controller: 'MyCtrl'
}).
when('/login', {
templateUrl: 'partials/login.html',
controller: 'LoginCtrl'
}).
when('/error/:errorId', {
templateUrl: 'partials/error.html',
controller: 'ErrorCtrl'
}).
otherwise({
redirectTo: '/home'
});
}]).run(function($rootScope, $injector, $location) {
$rootScope.$on("$locationChangeStart", function(event, next, current) {
console.log('current=' + current.toString());
console.log('next=' + next.toString());
});
});
});