Typescript Angular 2将int注入一个服务,然后将该服务注入另一个服务
我有两个组件和三个服务:Typescript Angular 2将int注入一个服务,然后将该服务注入另一个服务,typescript,angular,angular2-template,angular2-directives,angular2-services,Typescript,Angular,Angular2 Template,Angular2 Directives,Angular2 Services,我有两个组件和三个服务: team-cards.component 选择-cards-display.component 信用卡服务 http-cards.service http-team-cards.service 选择卡片显示。组件为自己提供选择卡片。服务,选择卡片。服务通过依赖项注入获取一个http选择卡片。服务 选择卡片显示。组件 import {Component} from 'angular2/core'; import {ChoosesCardsService} from '
- team-cards.component
- 选择-cards-display.component
- 信用卡服务
- http-cards.service
- http-team-cards.service
选择卡片显示。组件为自己提供选择卡片。服务
,选择卡片。服务
通过依赖项注入获取一个http选择卡片。服务
选择卡片显示。组件
import {Component} from 'angular2/core';
import {ChoosesCardsService} from './Services/chooses-cards.service';
import {ICard} from './Commons/ICard.interface';
@
Component({
selector: 'chooses-cards-display',
templateUrl: './templates/ChooseCardComponent/choose-card-display.tpl.html',
providers: [ChoosesCardsService]
})
export class ChooseCardDisplayComponent {
private _cards: Array<ICard>;
public _amount: number;
public _skip: number;
constructor(private _choosesCardService: ChoosesCardsService) {
this._amount = 3;
this._skip = 0;
this._cards = new Array<ICard>();
this._choosesCardService.getChoosesCards(this._amount, this._skip).forEach(card => {
console.log("CCDC hi!", card);
this._cards.push(card);
console.log("CCDC bye!");
});
}
}
import {Component} from 'angular2/core';
import {provide} from 'angular2/core';
import {Input} from 'angular2/core';
import {HttpTeamChoosesCardsService} from './Services/http-team-chooses-cards.service';
import {HttpChoosesCardsService} from './Services/http-chooses-cards.service';
import {ChooseCardDisplayComponent} from './chooses-cards-display.component';
@Component({
selector: 'team-chooses-cards',
template: `<chooses-cards-display></chooses-cards-display>`,
directives: [ChooseCardDisplayComponent],
inputs: ['teamID : given_teamID'],
providers: [provide(HttpChoosesCardsService, { useClass: HttpTeamChoosesCardsService, useValue: this.teamID})]
})
export class TeamChooseCardComponent {
@Input('given_teamID') teamID: number;
constructor() {
console.log("from teamcomponeny ", this.teamID);
}
}
http选择卡片。service
是一个抽象类,我提供给选择卡片。service
是它的一个扩展名为http团队选择卡片。service
http团队选择卡片。服务
import {Injectable} from 'angular2/core';
import {HttpChoosesCardsService} from './http-chooses-cards.service';
import {HttpUserService} from '../../global/global.services';
import {IUser} from '../../Global/global.commons';
import {ICard} from '../Commons/ICard.interface';
import {CardFactory} from '../Commons/CardFactory.class'
@Injectable()
export class ChoosesCardsService {
constructor(private _httpChoosesCardsSrvice: HttpChoosesCardsService, private _httpUserSrvice: HttpUserService) {
}
getChoosesCards(amount: number, skip: number): Array<ICard> {
var ret = new Array<ICard>();
this._httpChoosesCardsSrvice.getChoosesCards(amount, skip).forEach(cardInfo => {
console.log("CCS hi: ", CardFactory.create(this._httpUserSrvice.getUserById(cardInfo.userId), cardInfo.projectName,
cardInfo.description, cardInfo.likes));
ret.push(CardFactory.create(this._httpUserSrvice.getUserById(cardInfo.userId), cardInfo.projectName,
cardInfo.description, cardInfo.likes));
console.log("CCS bye!");
});
return ret;
}
}
import {Injectable} from 'angular2/core';
import {ICard} from '../Commons/ICard.interface';
@Injectable()
export abstract class HttpChoosesCardsService {
abstract getChoosesCards(amount: number, skip: number): any ;
}
import {Injectable} from 'angular2/core';
import {HttpChoosesCardsService} from './http-chooses-cards.service';
@Injectable()
export class HttpTeamChoosesCardsService extends HttpChoosesCardsService{
constructor(private _teamID: number) { super(); console.log("from teamService ", this._teamID);}
getChoosesCards(amount: number, skip: number): any {
//Mock data.
var ret = new Array<any>();
ret.push({
"userId": 12,
"projectName": "Bama",
"description": "Bama is good",
"likes" : 100
});
ret.push({
"userId": 2,
"projectName": "Bama2",
"description": "Bama2 is Bad",
"likes": 5
});
return ret;
}
}
首先,如果我的逻辑是错误的,如果有人能告诉我一种不同的方式或更好的架构,我会很感激,如果没有,我会很乐意回答有关架构的问题
现在,当我在团队选择卡片.组件中提供时,我想向http团队选择卡片.服务
注入一个数字
有人能发现我做错了什么吗
谢谢。这是不是像如果一只土拨鼠能扔木头,一只土拨鼠会扔多少木头这样的谜题呢?
,我很抱歉,我弄糊涂了。我的魔杖a chooses-cards-display.component使用chooses-cards.service,它使用http-chooses-cards.service。现在我想注入http-team-choices-cards.service,而不是http-choices-cards.service。我是在团队卡上做的,明白了吗?别把我当回事。如果我不这么做,其他人会的。附言:我要去麦迪屯英雄联盟