0
votes

Ajouter une matrice dans un tableau d'objet dans les dossiers angulaires

J'essaie de pousser un tableau de chaîne dans un tableau d'objet -> Accessright []; xxx

mais la ligne ci-dessus me donne une erreur

argument de type ' chaîne [] ' n'est pas assignable au paramètre de type ' accès '. Tapez ' string [] ' manque les propriétés suivantes De type ' AccessRight ': AccessRightID , EntitName , entityattribute

a également essayé d'ajouter et d'insérer à partir d'un autre poste mais je n'ai pas travaillé pour moi.

Honnêtement à l'abri des idées et débogué depuis si longtemps. J'apprécierais que quelqu'un puisse jeter un coup d'œil.

mise à jour: xxx

a essayé la méthode [], mais cela ne fonctionne pas car mes webervices s'attendent à un accès bon objet.


6 commentaires

Veuillez fournir la définition du type AccessRight .


Pouvez-vous partager votre code sur Stackblitz


Pour moi, on dirait que vous essayez de pousser un tableau de chaîne dans une gamme d'accès qui ne le supporte clairement pas. Vous devez soit modifier la définition de l'accès, soit rendre le type de variable.


@Kiranmistez va essayer de le faire bientôt


Qu'est-ce que cela.selectedPages [i] .entityname retour?


@ Mason, vous avez besoin d'initialiser un tableau avant de pousser sélectionnéeAccessRights: chaîne [] = [] Voir le = [] Sinon est NULL


3 Réponses :


1
votes
selectedAccessRights: string;
accessRights: any = [];

   for (var i = 0; i < this.numOfPages; i++) {

       this.selectedAccessRights = this.selectedPages[i].entityName;
       this.accessRights = this.accessRights.push(this.selectedAccessRights);

     }

1 commentaires

S'il vous plaît expliquer votre code avec une solution ce serait mieux



1
votes

La méthode de la matrice de poussée renvoie la longueur de la matrice après que la poussée soit effectuée, de sorte que les sapins de tout ce qui ne renvoie pas une chaîne []. De plus, lorsque vous appuyez sur une valeur dans la matrice, il l'a ajouté à ce tableau. Donc, changez cela.accessRights = ceci.accessrights.Push (ceci.selectedAccessRights);

à

Ceci.AccessRights.Push (ceci.SelectedAccessRights);

Veuillez vous reporter au lien ci-dessous pour une explication détaillée de la méthode push. https://developer.mozilla.org/ EN-US / DOCS / Web / JavaScript / Référence / Global_Objects / Array / Push


0 commentaires

0
votes

mises à jour:

J'ai décidé de changer mon backend pour recevoir la gamme d'éléments de chaîne à la place.

Il était beaucoup plus facile que d'essayer d'insérer un tableau de chaîne dans un objet, puis envoyez-le au backend.


0 commentaires