[英]How to redirect in Angular 1.5?
對AngularJs來說是完整的初學者,如何使用這種服務方法重定向到某個頁面?
目的地應該是“ /#/ login”,我嘗試使用$ location和$ window,但是我很可能會丟失一些東西。
謝謝
angular.module('app.services', ['ngRoute'])
.service('TaskPlannerApiService', [
'$http', '$q', '$timeout', function taskPlannerApiService($http, $q, $timeout) {
var me = this;
me.getDataAsync = function () {
var logincheck = true;
var apiCall = $q.defer();
var timeoutHanlder = $timeout(function () {
apiCall.reject('Timed out');
console.log('timed out');
}, 2000);
$http.get('/api/login/check').success(function (chk) {
console.log(chk);
logincheck = chk;
console.log(logincheck);
if (chk === false) {
logincheck = false;
}
if (logincheck == true) {
console.log("/api/taskplanner");
$http.get('/api/taskplanner/').success(function (data) {
$timeout.cancel(timeoutHanlder);
apiCall.resolve(data);
console.log(data);
}).error(function (data) {
$timeout.cancel(timeoutHanlder);
apiCall.reject(data);
console.log(data);
});
}
else {
console.log("redirect");
}
})
$timeout(function () { apiCall.notify('Retrieving Data . . .'); }, 0);
return apiCall.promise;
};
}
])
$location
注入您的控制器
接下來,如果您希望該場所使用以下代碼。
$location.path('/login');
如果您正在使用angularjs內部路由,則必須在控制器中注入$ location並在下面提供此代碼。
$location.path( "/login" );
如果您使用的是在angularjs中非常有名的ui-router,那么您將要處理狀態。 因此,在這種情況下,您必須在控制器中注入$ state並使用以下命令更改狀態:
$state.go('state name')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.