1
votes

Comment puis-je définir une valeur pour une propriété de paire clé / valeur dans Angular?

Disons que j'ai l'objet donné:

this._basketService.addFile({
  id: file.id,
  displayname: file.originalEntry['displayname'],
  filesize: file.originalEntry['filesize'],
  isarchived: file.originalEntry['isarchived'],
  userId: this._appSession.user.id,
  ???: file.originalEntry // <=== How can I set the key value pair here?
});

et la méthode suivante:

export class BasketService {
    addFile(file: File ) { //Some code here }
}

Alors j'appelle ma méthode comme ceci :

export interface File {
  id: string;
  displayname: string;
  filesize: number;
  isarchived: boolean;
  userId: string;
  [key: string]: any;
}

L'objet:

file.originalEntry est [clé: chaîne] . Je voudrais passer l'objet entier au lieu de paires clé / valeur individuelles.


3 Réponses :


1
votes

Essayez comme ceci:

this._basketService.addFile({
  id: file.id,
  displayname: file.originalEntry['displayname'],
  filesize: file.originalEntry['filesize'],
  isarchived: file.originalEntry['isarchived'],
  userId: this._appSession.user.id,
  keyValue: {key:file.id, value: file.originalEntry}
});


1 commentaires

keyValue n'est pas une propriété de mon objet. export interface File {[key: string]: any} puisque la propriété n'a pas de nom, comment puis-je lui attribuer une valeur?



1
votes

si la déclaration est comme ceci:

{ ID: key, Value: defaultValue }

vous pouvez définir sa valeur de cette manière:

this.dictionary = { ID: key, Value: defaultValue }; // key and defaultValue are variables

dans votre cas, passez ceci :

public dictionary: { [key: string]: string } = {};


0 commentaires

0
votes

Je l'ai résolu en mettant explicitement les paires clé / valeur dont j'avais besoin dans mon objet comme ceci:

const digitalObject = {
        id: file.id,
        displayname: file.originalEntry['displayname'],
        filesize: file.originalEntry['filesize'],
        isarchived: file.originalEntry['isarchived'],
        userId: this._appSession.user.id,
        code: file.originalEntry['code'],
        needle: file.originalEntry['needle'],
        x8: file.originalEntry['x8'][0],
        x5: file.originalEntry['x5'][0],
        8: file.originalEntry['8'][0],
        5: file.originalEntry['5'][0],
        creationtime: file.creationTime
    };

    this._basketService.addFile(digitalObject);

Merci pour toutes les contributions.


0 commentaires