如何重用组件代码(Angular2 + TS)

时间:2016-10-18 00:37:35

标签: angular typescript angular2-routing reusability

创建一个小型Angular 2应用程序(一款名为AbyssRium的精彩游戏的计算器),我试图重用显示元素列表的简单组件的代码。我希望这些组件只显示元素的子集(按组过滤)。

我不确定是否可以使用RouteConfig(传递参数)来做到这一点,但这将是一个不错的选择。我试图理解'路线'文档(herehere)但我看不到任何明确的引用(现在正在使用Resolve,但还没有结果)。我正在寻找这样的事情:

@RouteConfig([
  {path: '/corals', name: 'Corals', component: ItemsList, data:{group:'coral'}, useAsDefault: true},
  {path: '/fishes', name: 'Fishes', component: ItemsList, data:{group:'fish'}},
])

我还尝试继承模块(ItemsList - > ItemsCoralList& ItemsFishList),并在构造函数中初始化类(this.group =" coral"),但出现了大量的编译错误:

  

无法解决' xxx'。确保它们都有有效的类型或注释。

知道如何在不复制所有代码两次的情况下进行操作吗?

此处的代码位于Plunker

1 个答案:

答案 0 :(得分:2)

您可以使用:

{path: '/:group', component: ItemsList}

并通过路由器访问

constructor(route: ActivatedRoute) {
  this.route.params.subscribe(params => params.group)
}

注意:这是路由器3.x语法,它可能不会开箱即用 - 你应该升级到最终......