0
votes

Comment créer des services spécifiques au service en angulaire

J'ai deux services S1 et S2 en angulaire

export class S1 {
    constructor(private s2: S2) {
    // ...
    }
}


1 commentaires

Nouveau S2 ??????????


3 Réponses :


0
votes

Je ne pense pas que cela soit possible parce que le décorateur "@Ijejejectable" ajoute uniquement les métadonnées fournies qui définit quels injecteurs fourniront l'injectable en l'associant à une @ngModule. (Voir Documentation )

Peut-être que si vous partagez un cas d'utilisation concret, nous pouvons voir s'il y a une autre solution de contournement, mais il y a probablement une pénurie dans votre conception de la structure d'applications.


0 commentaires

1
votes

Je ne suis pas à peu près sûr que je reçois ce que vous voulez, mais permettez-moi de le casser comme suit:

  • Il n'est pas possible d'injecter un service quelque part sans b> le fournir quelque part li> ul>

    Vous pouvez injecter un service dans un autre service comme suit: P>

    @Injectable()
    
    export class First {
    }
    
    
    @Injectable()
    
    export class Second {
    
        constructor(@Inject(First) first:First){ 
    
        }
    }
    


0 commentaires

0
votes

Je souhaite créer une instance de S2 qui est uniquement scopée pour S1 (la même chose que pour les composants) P>

Eh bien, c'est exactement ce que vous faites. Vous fournissez S1 et S2 dans le cadre d'un composant. P>

@Component({
    ...
    viewProviders: [ S1, S2 ]
})
export class MyComponent { ... }

2 commentaires

Je pense qu'il ne doit pas avoir besoin de mettre en place des services à la composante, il a besoin de mettre en place un service à un autre, je me trompe?


@Abdulrahman Je ne comprends pas complètement la question. J'aurais dû voter pour le fermer comme on ne sait pas ce qui est demandé.