【发布时间】:2016-01-03 19:30:52
【问题描述】:
我有一个简单的 Angular 2 应用程序种子。一个简单的引导程序;
bootstrap(App, [
ROUTER_PROVIDERS,
provide(LocationStrategy, {useClass: HashLocationStrategy})
]);
并且App设置了几条路线;
@RouteConfig([
{path: '/', component: Home, as: 'Home'},
{path: '/login', component: Login, as: 'Login'}
])
这里没什么特别的。我做的一件事是 OAuth2 登录,它从应用程序重定向,然后返回,所以我想做的是在加载时传递一个查询参数。类似http://localhost/#?token=123
根据我不断收到的错误,这是:How to utilise URLSearchParams in Angular 2 看来我不能只将RouteParams 注入我的 App 构造函数,因为它不是由路由器创建的。
那么如何在加载时获取查询参数?我真的需要让 App 创建一个空组件(AppRoot 或其他东西),其唯一目的是让它包含一个router-outlet,这样我就可以让它通过路由器吗?这似乎是很多不必要的开销.. 有人知道更好的方法吗?
【问题讨论】:
-
您是否尝试将自定义实例添加到
bootstrap(..., provide(RouteParams, asValue: new RouteParams(...))。如果没有尝试,我会假设RouteParams是从路由器注入的(如果可用),否则来自bootstrap()的注入(我自己还没有尝试过)。 -
这可以提供一个实例,但它看不到参数,它是空的。我怀疑是因为参数实际上去了 Home 路线
-
我假设你在传递的实例上设置了参数,你不这样做吗?
-
我不确定我是否理解?我希望他们能从 window.location 解析?
-
对不起,我误解了你的问题。这种方式行不通。
标签: angular typescript angular2-routing typescript1.7