我正在angular2
项目中处理一些特定任务,我的问题在于路由部分。我已导入
import { UIRouter } from 'ui-router-ng2';
而不是:
import { Router} from '@angular/router-deprecated';
因此我无法识别重定向应该如何,因为在router
中实例化constructor
的普通情况将是:
this.router.navigate(['/Blablabla']);
但是,现在我找不到navigate
中UIRouter
的替代方法,因此我可以重定向到特定组件。
任何帮助?
答案 0 :(得分:1)
UI-Router(ui-router-ng2
)与Angular 2路由器(@angular/router
)不同。
在ui-router-ng2中,您可以通过注入router: UIRouter
并调用the go method:router.stateService.go('somestate')
以编程方式进行导航。
或者,您可以直接将状态服务注入$state: StateService
并调用$state.go('somestate')
您还可以创建状态并使用redirectTo
property重定向到其他位置:
var redirectFromState = {
name: 'landingPage1',
url: '/landingpage/for-search-engine-or-whatever`
redirectTo: 'login'
}
var loginState = {
name: 'login',
url: '/login',
component: Login
}
您可以根据某些条件注册transition hook进行重定向。
router.transitionService.onStart({ to: 'auth.**' }, transition => {
if (!transition.injector().get(AuthService).isAuthenticated()) {
return router.stateService.target('login');
}
}