我应该使用 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
。将您的图像保留在服务中。
这样你的服务就是单例的。如果您的组件标记被多次使用并不重要。不显示就不会渲染。
我写了一个 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
。将您的图像保留在服务中。
这样你的服务就是单例的。如果您的组件标记被多次使用并不重要。不显示就不会渲染。