我应该使用Angular 2组件或服务吗?

时间:2017-05-17 14:11:49

标签: angular angular2-template angular2-services angular2-components

我写了一个有角度的2分量:

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

})
export class DinoComponent {
...
}

它是包含在模态窗口中的图像查看器。

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

  

如果我在我的应用程序的不同部分使用选择器,它将创建许多   组件的实例是否有内存,对吗?

观看者应该只加载一次,只是图像应该根据不同的网址进行更改,这些网址可以通过遍布我的应用程序的按钮进行访问。

我知道我可以创建一个按要求加载图像的服务,但是如何将模板与模板一起用作服务,以便像菜单,框架等公共部分只加载一次?服务是否可以与其关联的html模板?

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

为您的组件和服务创建一个模块,如下所示:

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

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

这样您的服务就是单身人士。如果您的组件标签被多次使用并不重要。如果不显示它们,则不会渲染它们。