javascript - AppComponent 中的 RouteParams

标签 javascript routes angular routeparams

我正在尝试制作一个简单的单组件应用程序来测试 Angular2,但我非常坚持访问我的应用程序组件中的 RouteParams。

这是我目前所拥有的:

@Component({
  selector: 'app',
  template: '<h1>ID: {{id}}</h1>',
  directives: [ROUTER_DIRECTIVES],
  providers: []
})
@RouteConfig([
  { path: '/', component: App }
])
class App {
  private id: string

  constructor(params: RouteParams) {
    this.id = params.get('id')
  }
}

bootstrap(App, [
  ROUTER_PROVIDERS,
])

所以基本上我想要实现的是让用户转到http://website.com/?id=21然后让网站显示 21. 我是否需要为此创建一个单独的组件,然后让我的 AppComponent 提供到该组件的路由,或者是否有任何方法可以访问应用程序组件中的路由参数?

最佳答案

这可能会做你想做的事

  constructor(private router:Router, private routeSerializer:RouterUrlSerializer, private location:Location) {
    router.changes.first().subscribe(() => {
      let urlTree = this.routeSerializer.parse(location.path());
      console.log('serializer', urlTree.children(urlTree.root)[0].segment);
      // or to get the next segment of the path:
      // console.log('serializer', urlTree.children(urlTree.children(urlTree.root)[0])[0].segment);
    });
  }

关于javascript - AppComponent 中的 RouteParams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37100244/

相关文章:

javascript - 在 jQuery 中使用 .append 提交值 $_POST 变量包含火狐中的数据。但在 chrome 上 $_POST 变量为空

ruby-on-rails - 如何验证为 Rails 应用程序中的所有路由定义了 Controller 操作?

ruby-on-rails - 在 Rails url helper 中包含约束路由的子域

c# - RouteData.Values 保持为空

javascript - 根据按钮值切换div内容

html - 使物化模态窗口的元素不可滚动

javascript - 如何在按钮内进行倒计时?

java - 我需要使用 Java 读取 Web 驱动程序中弹出窗口中显示的文本

javascript - javascript 菜单上的事件链接可用于父链接,而不仅仅是子链接

html - 是使用 [innerHTML]、angular 4 进行数据绑定(bind)的最佳方式吗