Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript Angular 2将int注入一个服务,然后将该服务注入另一个服务_Typescript_Angular_Angular2 Template_Angular2 Directives_Angular2 Services - Fatal编程技术网

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。我是在团队卡上做的,明白了吗?别把我当回事。如果我不这么做,其他人会的。附言:我要去麦迪屯英雄联盟