在AngularJS中执行此操作的正确方法是什么?我没有找到任何简单的答案。
我想:
注意:我正在使用ui-routing(状态)来执行重定向
感谢。
答案 0 :(得分:7)
这有效(感谢PSL):
.controller('SeeYouSoonCtrl', ['$scope', '$state', '$timeout',
function($scope, $state, $timeout) {
$timeout(function() {
$state.go('AnotherState');
}, 3000);
}])
答案 1 :(得分:2)
它也可以使用$location
代替$state
!
app.controller('SeeYouSoonCtrl', function($scope, $location, $timeout) {
$timeout(function() {
$location.path('/nextsite');
}, 3000);
});
答案 2 :(得分:0)
基本上,他们是双向$location
和$timeout
。这将解决您的问题:
- 按
醇>$timeout
方法:
代码:
.controller('HomeController', ['$scope', '$state', '$timeout',
function($scope, $state, $timeout) {
$timeout(function() {
$state.go('anotherstate');
}, 4000);
}])
- 按
醇>$location
方法:
代码:
.controller('HomeController', ['$scope', '$state', '$location',
function($scope, $state, $location) {
$location.path('/appurl');
}])
答案 3 :(得分:0)
你可以简单地重定向到aby其他组件:
打开你的filename.component.file并添加这个功能
$timeout(function() {
$location.path('/login');
}, 3000);
});
,您的页面将在3秒后重定向到登录组件
答案 4 :(得分:0)
如果有人要在angular 2 +中寻找相同的功能。
import { Router } from '@angular/router';
constructor(private router: Router) {}
ngOnInit() {
// do init at here for current route.
setTimeout(() => {
this.router.navigate(['nextRoute']);
}, 5000); //5s
}