使用Typescript在Angular 2中的组件之间共享行为

使用Typescript在Angular 2中的组件之间共享行为

问题描述:

我目前正在使用Typescript处理Angular 2项目。使用Typescript在Angular 2中的组件之间共享行为

我有几个组件共享相同的行为:它们都能够显示加载程序(取决于它们是否获取某些数据),错误屏幕(如果获取失败),并且它们都订阅相同的服务(获取数据的服务)。该服务每30秒刷新一次数据,并且组件用户正在做差不多与新数据一样。

我找不到分享此行为的好方法。

我试着从打字稿中使用mixins,但首先,我不能重写我在组件中声明的方法,其次,我仍然必须在我的组件中声明方法,但没有任何内容,所以我的编译器不会抱怨。

我也试过使用装饰器,但我的编译器抱怨,因为它没有找到装饰器中声明的方法。

我终于尝试使用typecript继承与父组件,没有任何模板,它只是一个父类,我用它与“扩展ParentComponent”,并把我所有的逻辑在ParentComponent。这最后一种方法是最简单的方法,但我有强烈的感觉,这是绝对不是好的方式(组成继承等)

有没有办法做到这一点呢?我来自Ruby on Rails,类似Ruby中的“担忧”会很棒。

+0

那么你究竟想要分享什么?模板?组件类? –

创建一个ParentComponent,其中包含一个路由器插座以将唯一行为保存为(ChildComponents)并通过共享服务共享数据模型。

还包含lazyloading(使用loadchildren的路由)来获取模块特定的共享服务。