IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VueJS Discussion :

Composant MultiSelect updater la valeur lors du chargement de la page


Sujet :

VueJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 587
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 587
    Par défaut Composant MultiSelect updater la valeur lors du chargement de la page
    Bonjour,

    Pourriez vous m'aider s'il vous plaît?
    Je voudrais avec le composant multiselect https://vue-multiselect.js.org/ définir la valeur. Le problème c'est que j'ai un formulaire de mise à jour qui fait aussi ajout, je récupère des données notamment sur des role id et nom, je voudrais du coup remplir automatiquement le multiselect.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <multiselect v-model="user.selectedRole" :options="roles" :multiple="false" open-direction="bottom"
        placeholder="Roles" selectLabel="Selectionner"
        track-by="id" label="name"
        class="filter">
     </multiselect>

    Les data initiales
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    data () {
        return {
          user: {
            first_name: '',
            last_name: '',
            email: '',
            selectedRole: []
          },
          roles: []
     
        }
      }
    ma fonction appelé dans created
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ,    initParams () {
          if (this.$route.query.updateUser === true)
          {
            let data = JSON.parse(localStorage.getItem('dataToUpdateByAdmin'))
            this.user.first_name = data[0].firstName
            this.user.last_name = data[1].lastName
            this.user.email = data[2].email
            //cette partie ne fonctionne pas car je ne sais pas quel champ mettre à jour
            this.user.selectedRole['role'] = data[3].role
            this.user.selectedRole['id'] = data[4].id
          }
        }
    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Salut,

    Pas grand chose à changer:

    1. Dans data, selectedRole est déclaré en tableau mais visiblement, tu l'utilises en objet, donc
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
       
      data () {
          return {
            user: {
              first_name: '',
              last_name: '',
              email: '',
              selectedRole: {}, // changement ici
            },
            roles: []
       
          }
        }
    2. dans initParams, Vue ne détecte pas les ajouts de propriétés sur un objet. Pour ca, il faut utiliser Vue.set ou son équivalent dans une instance de composant $set
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
       
      initParams () {
        // ...
        this.$set(this.user.selectedRole, 'role', data[3].role);
        this.$set(this.user.selectedRole, 'id', data[4].id);
        // ...

  3. #3
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 587
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 587
    Par défaut
    Merci ça marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/02/2016, 19h00
  2. Afficher un message lors du chargement de la page
    Par Dakuan dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 19/08/2008, 17h45
  3. message d'attente lors du chargement d'une page web
    Par info007 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 18/08/2008, 18h24
  4. Réponses: 3
    Dernier message: 02/04/2008, 13h30
  5.  s'affiche lors du chargement de la page
    Par Audrey698 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/09/2007, 21h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo