javascript - La mise à jour de la variable vue ne peut pas déclencher la mise à jour de dom
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-12 09:29:44
0
10
1046

Comme indiqué ci-dessous, j'utilise v-for pour restituer cette liste d'éléments en HTML et contrôler s'il faut afficher (v-show) le code HTML correspondant à cet élément via l'actif de chaque élément.
Cependant, si vous sélectionnezItem via la méthode événementielle comme celle-ci et modifiez la itemList, le dom n'est pas mis à jour ? ? ?

var vue = new Vue({ el: '#app', data: { itemList:{ '1':{'text':'abc', 'active':false}, '2':{'text':'abc', 'active':true} }, }, methods: { selectItem: function (index) { vue.itemList[index].active = true; }, }, });
女神的闺蜜爱上我
女神的闺蜜爱上我

répondre à tous (10)
仅有的幸福
// 你的数据itemList结构改改 var vue = new Vue({ el: '#app', data: { itemList:[ {'text':'abc', 'active':false}, {'text':'abc', 'active':true} ], }, methods: { selectItem: function (index) { this.itemList[index].active = true; }, }, });
    phpcn_u1582

    vue.itemList[index].active = true; vue modifiée en ceci

      滿天的星座

      Y a-t-il une valeur pour console.log(index) dans selectItem Vous devriez l'utiliser pour obtenir cet objet vue

      ?
        曾经蜡笔没有小新

        La méthode de modification des données est incorrecte, donc aucune erreur n'est signalée ?

        var vue = new Vue({ el: '#app', data: { itemList:[ {'text':'abc', 'active':false}, {'text':'abc', 'active':true} ] }, methods: { selectItem: function (index) { this.itemList[index].active = true; } }, });
          某草草

          Selon le format de données que vous avez fourni, je l'ai essayé et cela fonctionne. Le code est le suivant
          `


        • {{item.text}}



        • `

            扔个三星炸死你

            Dans vue, ce n'est pas via vue Même si vous utilisez une variable pour enregistrer l'instance de vue via ceci

            vue.itemList[index].active = true; 换成 this.itemList[index].active = true;
              阿神

              Comment l'écrivez-vous dans votre html ? Bien que votre code js ne soit pas assez élégant, par exemple, il est plus approprié d'utiliser des tableaux au lieu d'objets ici, mais ce n'est pas faux, je pense que l'échec du rendu de votre dom est dû. ce n'est pas le problème ici. Cela devrait être lié au contrôle de formulaire, comme le problème du flux unidirectionnel de données sélectionnées.

                巴扎黑

                Le mode valeur clé ne peut pas être surveillé par vue, vue fournit la méthode $set. . La suppression nécessite également
                selectItem : function (index) {

                var newA = this.itemList[index]; newA.active = true this.$set(this.itemList,index,newA)

                },

                  習慣沉默

                  Changez Vue par ceci et essayez-le

                    typecho

                    this.itemList.splice(index, 1, Object.assign({}, this.itemList[index], { active: true }))

                      Derniers téléchargements
                      Plus>
                      effets Web
                      Code source du site Web
                      Matériel du site Web
                      Modèle frontal
                      À propos de nous Clause de non-responsabilité Sitemap
                      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!