我应该使用 Angular 2 个组件还是服务

Should I use Angular 2 Components or Services

我写了一个 angular 2 组件:

@Component({
  templateUrl: ',
  selector: 'dino',
  templateUrl: './dino.component.html',
  styleUrls: ['./dino.component.css']

})
export class DinoComponent {
...
}

它是一个包含在模态 window 中的图像查看器。

我想像服务一样在我的应用程序的不同部分共享此组件。

If I use the selector in different part of my app it will create many instances of the component waisting memory, correct?

查看器应该只加载一次,只有图像应该根据不同的 url 进行更改,这些 url 可以通过散布在我的应用程序中的按钮访问。

我知道我可以创建一个根据请求加载图像的服务,但我如何使用带有模板的模式作为服务,以便像菜单、框架等公共部分只加载一次?服务可以关联 html 模板吗?

如何确保模态查看器是整个应用程序共享的单例?

感谢您的帮助。

像这样为您的组件和服务创建一个模块:

@NgModule({
  imports: [
    CommonModule
  ],
  declarations: [YourComponent],
  exports: [YourComponent]
})
export class TranslationModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: YourModule,
      providers: [
        YourService
      ]
    };
  }
}

在您的 app.module 中将模块导入为 YourModule.forRoot() 在所有其他模块中将其导入为 YourModule。将您的图像保留在服务中。

这样你的服务就是单例的。如果您的组件标记被多次使用并不重要。不显示就不会渲染。