大佬教程收集整理的这篇文章主要介绍了Angular 4 Service引用了另一种服务良好做法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题是关于角度模式和良好实践.对于我的具体案例,最好的方法是什么:
1 – 每次需要使用ID信息执行API请求时,使用服务A来呼叫服务B.像这样:
服务A.
@Injectable() export class Aservice { // ID public myId: String; [...] }
服务B.
@Injectable() export class Bservice { constructor( private restangular: Restangular,private aservice: Aservice,) { } public get(callBACk: (_: String[]) => void) { // Sends the request return this.restangular .all('myrequest') .customGET('',{ myId: this.aservice.myid,}) [...] } [...] }
要么
2 – 永远不要从另一个服务调用服务,并始终使用该组件首先调用Aservice然后使用Bservice上的值(因此每次进行API调用时都会复制相同的代码(或者至少每次调用一次)使用该api调用的组件).
服务A.
@Injectable() export class Aservice { // ID public myId: String; [...] }
服务B.
@Injectable() export class Bservice { constructor( private restangular: Restangular,) { } public get(callBACk: (_: String[]) => void,myId: String) { // Sends the request return this.restangular .all('myrequest') .customGET('',{ myId: myid,}) [...] } [...] }
组件C.
export class CComponent implements OnInit { // List of api returned Strings public apiList: String[] = []; constructor( private aservice: Aservice,private bservice: Bservice ) { this.bservice.get(result => { this.apiList = result; },this.aservice.myId); } ngOnInit() { } }
基础服务
@Injectable() export class Baseservice { public myId: String; [...] }
其他服务
@Injectable() export class Otherservice extends Baseservice { constructor( private restangular: Restangular,{ myId: this.myid,}) [...] } [...] }
我通常使用基本服务来设置身份验证标头来验证apis.
以上是大佬教程为你收集整理的Angular 4 Service引用了另一种服务良好做法全部内容,希望文章能够帮你解决Angular 4 Service引用了另一种服务良好做法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。