博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Angular] Configurable NgModules
阅读量:4657 次
发布时间:2019-06-09

本文共 1638 字,大约阅读时间需要 5 分钟。

You probably have seen 'foorRoot()' method a lot inside Angular application.

Creating a configurable NgModule allows us do the configuration for each serivce.

// service moduleimport { NgModule, ModuleWithProviders, Provider } from '@angular/core';import { CommonModule } from '@angular/common';import { HttpModule } from '@angular/http';import { FOOD_STORE_CONFIG, FoodStoreConfig } from './config';import { FoodStoreService } from './food-store.service';export const FOOD_PROVIDERS: Provider[] = [  FoodStoreService];@NgModule({  imports: [    CommonModule,    HttpModule  ]})export class FoodStoreModule {  static forRoot(config: FoodStoreConfig): ModuleWithProviders {    return {      ngModule: FoodStoreModule,      providers: [        ...FOOD_PROVIDERS,        {          provide: FOOD_STORE_CONFIG,          useValue: config        }      ]    };  }}

 

import { InjectionToken } from '@angular/core';export interface FoodStoreConfig {  storeId: number,  storeToken: string}export const FOOD_STORE_CONFIG = new InjectionToken
('FOOD_STORE_CONFIG');

 

Then in the app.module.ts:

imports: [    BrowserModule,    HttpModule,    FoodStoreModule.forRoot({      storeId: 10292,      storeToken: 'eca938c99a0e9ff91029dc'    })  ],

 

Now the 'FoodStoreService' can be used any where inside our application:

// app.component.ts@Component({  selector: 'app-root',  template: `    
Food Store ({
{ (store | async)?.name }})
`})export class AppComponent { store = this.foodService.getStore(); constructor(private foodService: FoodStoreService) {}}

 

转载于:https://www.cnblogs.com/Answer1215/p/6843679.html

你可能感兴趣的文章
「Sqlserver」数据分析师有理由爱Sqlserver之十-Sqlserver自动化篇
查看>>
怎样将pdf分割成多个文件
查看>>
聊聊 CDN 缓存与浏览器缓存
查看>>
针对数据库开发人员的性能调优小提示
查看>>
宾得常用镜头群[转自东河寒梅]
查看>>
重点错误记录
查看>>
IDEA kotlin 配置
查看>>
navicat编辑记录 (zhuan)
查看>>
Error 3050003 assertion failure with message: read 错误
查看>>
30分钟搭建一个小型网站框架(python django)
查看>>
JavaScript
查看>>
数据仓库基础内容
查看>>
== 和 Equals 的区别
查看>>
C#界面设计疑问
查看>>
QC 2.0为啥可以快充
查看>>
【网页插件】jQuery Weather v3.0 (网页天气预报)
查看>>
基于大数据计算思想的分布式数据库
查看>>
MyBaties --day1
查看>>
.net 使用AgsXMPP与openfire连接,实现跨平台信息流通。
查看>>
DP动态规划【专辑@AbandonZHANG】
查看>>