0
votes

NGRX Data EntityResourceurl selon une autre entité. URL dynamiques?

Habituellement, lorsque je veux spécifier l'URL de l'entité, j'ai une URL spécifique pour celle-ci comme ServerurL / Heroes . Mais maintenant, j'ai un cas où je veux utiliser une entité appartenant à une autre entité. Par exemple, disons que je veux utiliser des armes de héros. Mes URL HTTP pour les épées ressemblent à quelque chose comme: ServerurL / Heroes / Heroïde / Armes . Donc, disons que je dois ajouter une nouvelle épée, ma seule option consiste à l'ajouter à un héros spécifique, alors j'ai besoin de connaître des informations sur les hérosids et l'épée à faire quelque chose comme: http post http.post ('ServerurL / héros / Héroïde / armes ', SwordObject);

Actuellement, lorsque j'ajoute simplement une URL de Heroes dans l'entitéhttpresourceurls dans DefaultDataserviceconfig. Vous pouvez voir le Exemple sur Stackblitz . Allez sur App-> Store-> Entity-> Entity-Store.Module.ts. C'est là que je spécifie habituellement l'URL.

Comment puis-je m'approcher de mon cas? Comment puis-je avoir des URL dynamiques pour les enfants d'enfants?

mise à jour

De ce que j'ai trouvé dans ce numéro, NGRX-Data ne prend pas encore en charge les paramètres.

https://github.com/ngrx/platform/issues/1934


0 commentaires

3 Réponses :


0
votes

Vous devez utiliser magasin de routeur de NGRX.

Avec le magasin, vous avez ces sélecteurs:

selectqueryparams , selecttrouteparams , selecttroutedata et le selecturl . .

Vous pouvez donc facilement obtenir tous vos besoins pour construire les différents chemins.


0 commentaires

3
votes

Dans mon cas, j'ai créé le service:

@Injectable()
export class OrganizationDataService extends DefaultDataService<Organization> {
  constructor(http: HttpClient, httpUrlGenerator: DefaultHttpUrlGenerator, logger: Logger) {
    super('Organization', http, httpUrlGenerator);
  }

  getAll(): Observable<Organization[]> {
    console.log('getAll called');
    // custom call to api correct variant:
    return this.execute('GET', `${environment.apiUrl}org/${someId}/apps`)
    // custom call to api also worked variant:
    // return this.http.get<Organization[]>(`${environment.apiUrl}org/${someId}/apps`);
  }
}


4 commentaires

C'est ce que je fais maintenant, mais cela ne renvoie que l'observable qu'il ne fonctionne pas avec le magasin.


@Vladymyr K Où vient-il quelqu'un de quelqu'un? C'est mon problème maintenant.


@ Godrules500 Avez-vous réussi à comprendre cela? avoir le même problème


@Vato, vous devez enregistrer le service NGRX.IO/API/DATA/ENTITYDATASERVICE#REGISSERSERVICE REJET a>



0
votes

J'ai fini par utiliser GetWithQuery Fonction: xxx

au lieu d'utiliser getall.


0 commentaires