我正在调查"如何在Angular2上使用常量"并找到this post with this answer,其中必须创建一个OpaqueToken
的类,将其导入app.module
并将其用作@NgModule
中的提供者。在页面类或服务中导入它并使用@Injectable()
注入它。
然后我搜索了如何在AngularJS"中创建一个"工厂。并找到关于sharing data between components in Ionic2的帖子,在其中创建一个没有OpaqueToken
的简单类,并将其导入app.components
,在provider
上将其注册为@Component
并在App构造函数中。最后将其导入页面类并注入它(无需使用@Inject()
)
这两者有区别吗?乍一看这些接缝都做了完全相同的事情,我发现第二种方式更容易。
修改
用户 estus 在评论中指出,第一个用OpaqueToken
注入一个类,第二个例子注入一个类实例。这是否意味着在第一个示例中,每个页面都有自己的该类实例?所以10页= 10个实例?它们之间共享静态数据/常量不会适得其反(或效率低下)吗?