[Angular实战网易云]——4、获取轮播图(一)

创建服务

在service路径下执行创建服务命令

ng g s home

@Injectable({
   
  providedIn: ServicesModule, // 哪一个模块提供的
})

其中HomeService中有一个providedIn属性,代表着这个一个服务是谁提供的;默认值‘root’代表是appModule提供的。但是这次结构是将子服务放进总服务中,所以providedIn值应改为ServicesModule。这样做的好处:如果这测的服务没有被用到,就会被摇数优化给摇掉(tree shaking,一种编译优化的方式。可以自动清除你引用了但却未使用的模块或包,减小打包体积。)

服务实现

home.service

export class HomeService {
   
  constructor(
    private http: HttpClient,
    @Inject(API_CONFIG) private uri: string // 注入令牌
  ) {
   }

  // 获取轮播图
  getBanners(): Observable<Banner[]> {
   
    return this.http
      .get(this.uri + "banner")
      .pipe(map((res: {
    banners: Banner[] }) => res.banners)); //  一般不知道类型,可以使用any
  }
}

service.module

export const API_CONFIG = new InjectionToken("ApiconfigToken");

@NgModule({
   
  declarations: [],
  imports: [],
  providers: [{
    provide: API_CONFIG, useValue: "http://localhost:3000/" }],
})

ApiconfigToken是什么意思?
angular提供一个服务,都有一个令牌以及令牌的值,值可以是字符串或者类,令牌也可以直接写成字符串,但是可读性不好࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值