加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular 创建服务

发布时间:2020-12-17 07:02:58 所属栏目:安全 来源:网络整理
导读:一:新建服务模块和服务文件 ng g module services --spec=falseng g service services/quote --spec=false 二:在quote.service.ts中,可以用快捷方式新建初始服务。 ng-service 三:在services.module.ts中设置全局服务。 解释: forRoot()的目的是在应用

一:新建服务模块和服务文件

ng g module services --spec=false
ng g service services/quote --spec=false

二:在quote.service.ts中,可以用快捷方式新建初始服务。

ng-service

三:在services.module.ts中设置全局服务。

  解释:

  forRoot()的目的是在应用程序中使用单例服务。
  forRoot()的意义是仅有一个由ModuleWithProviders导出的service实例。
  如果没有forRoot()方法,如果你在模块的providers里面添加一个service并在多处用到这个module,那么你在这个应用的不同级都会实例化这个service。用forRoot(),它会创建这个service的新实例

import { NgModule,ModuleWithProviders } from ‘@angular/core‘;
import { QuoteService } from ‘./quote.service‘;

@NgModule()
export class ServicesModule { 
  static forRoot():ModuleWithProviders{
    return {
      ngModule:ServicesModule,providers:[QuoteService]
    }
  }
}

四:在项目核心模块中引入服务模块。core/core.module.ts

ServicesModule.forRoot()

  

import { NgModule,Optional,SkipSelf } from ‘@angular/core‘;
import { HeaderComponent } from ‘./header/header.component‘;
import { FooterComponent } from ‘./footer/footer.component‘;
import { SidebarComponent } from ‘./sidebar/sidebar.component‘;
import { SharedModule } from ‘../shared/shared.module‘;
import { MatIconRegistry } from ‘@angular/material‘;
import { DomSanitizer } from ‘@angular/platform-browser‘;
import { loadSvgsources } from ‘../util/util.svg‘;
import { AppRoutingModule } from ‘../app.route.module‘;
import { ServicesModule } from ‘../services/services.module‘;


@NgModule({
  imports: [
    SharedModule,AppRoutingModule,ServicesModule.forRoot()
  ],exports:[
    SharedModule,HeaderComponent,FooterComponent,SidebarComponent
  ],declarations: [HeaderComponent,SidebarComponent]
})
export class CoreModule { 
  constructor(
    @Optional() @SkipSelf() parent:CoreModule,ir:MatIconRegistry,ds:DomSanitizer
  ){
    if(parent){
      throw new Error(‘模块以及存在,不能再次加载‘);
    }
    loadSvgsources(ir,ds);
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读