为什么我不应该在Angular 2中的组件中提供服务

时间:2016-11-09 18:21:39

标签: angular angular2-services

如果我想在整个应用中使用服务,我应该在<div class="averios-header"> <div id="setting-dropdown"> <!-- SETTING DROPDOWN WILL GO HERE --> </div> </div> <div id="log-in"> <div id="loginHeader"> <h1>Portal</h1> </div> <div id="welcome-text"> <p> Welcome name </p> <p> Your last login was time on date </p> <p> Please select an application below to begin </p> </div> </div> <div id="dropdown-one"> <div class="dropdown"> <button class="dropbtn">SELECT</button> <div class="sphere"> <div id="arrow"> <img src="C:\Users\mseh\Desktop\Images\arrow.png" width="29" height="27" alt=""/> </div> </div> <div class="dropdown-content"> <a href="#">Link 1</a> <a href="#">Link 1</a> <a href="#">Link 1</a> <a href="#">Link 1</a> </div> </div> </div>中将其声明为提供者,但如果在app.module.ts中声明它也可以。

这两种方法有什么显着差异吗?

2 个答案:

答案 0 :(得分:7)

我们假设您在AppModule中声明了三个组件。如果您在每个组件中单独提供服务,则每个组件都有自己的服务实例,但如果您在AppModule中提供服务,则您的服务将是单例 - 每个组件将共享一个相同的实例服务。

答案 1 :(得分:0)

使用app.module.ts vs app.component.ts只是naming convention,并且不会在程序中确定Angular中的任何内容。该代码适用于您的服务所在的任何位置。将服务放入service-name.service.ts文件而不是app.module.ts中可能更有意义。不过,正如Stefan Svrkota的回答所示,你可以获得代码重用的优势