Angular 5全球组件及其服务

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (3)
  • 关注 (0)
  • 查看 (106)

通过Angular的文档,特别是样式指南,他们列出了共享模块和核心模块。根据文档,服务应放在共享模块的核心模块和组件中。我的问题是,如果我有一个组件,比如一个自定义文件上传组件,它还有一个相应的服务,该组件和服务应该驻留在哪里?由于服务与组件一起使用,因此将两者保持在一起似乎是有意义的,但是,这似乎不符合Angular标准。有人遇到过这个问题吗?

提问于
用户回答回答于

根据Angular Style Guide,Angular并不真正建议提供服务SharedModule。原因是,无论哪个模块导入SharedModule,都将获得该共享服务的单独实例。在有状态服务的情况下,这是不可接受的。但在你的情况下,我不确定服务是否包含任何状态数据。所以我认为,将此组件和此服务添加到SharedModule本身应该是安全的。

再次,考虑到该服务不会有任何状态数据。

此外,Angular建议在其中提供服务,CoreModule因为它还建议CoreModule仅通过单个模块(通常是AppModule)进行可导入。这就是为什么它还建议创建一个Guard来防止重新导入CoreModule。

热门问答

腾讯云何时会有域名交易系统?

腾讯云域名与DNS解析团队域名、解析产品经理
推荐

对象存储, 版本控制,没有提供对象的历史版本列表的查询API吗?

serverless db 如何管理?

Richel码农
推荐
1.支持pg_dump,psql工具进行数据导入和导出。 2.本地CLI,可以使用postgresql的客户端psql,也可以使用dbeavr,navicate,pgadmin等工具访问。 3.支持操作DB ,要自己写逻辑 ... 展开详请

安卓APP使用免费版加固后,在Android11系统上运行闪退,是什么原因?

hello,目前已经适配了Android R Beta1,预计这周内上线移动应用安全在线版,请留意日志更新

mysql安装后修改默认密码问题?

推荐已采纳
您好,可以先配置免密登录数据库,将密码修改后再关闭免密登录即可,下面介绍简要步骤: 1. 获得服务器超级管理员权限,然后先停止mysql服务 2. 修改mysql启动参数文件,文件一般在 /etc/my.cnf (linux)在[mysqld]的段中加上一句:skip-gra...... 展开详请

配置 https 配置完后报错?

女淘日记

杭州吱吱吱科技 · 站长 (已认证)

推荐已采纳

请检查服务器是否安装了代理?如有请尝试移除代理再尝试

另外,curl访问https时候需要确保服务器已经保存了证书,可以通过 curl -k --tlsv1 过滤

所属标签

扫码关注云+社区

领取腾讯云代金券