2016-07-27 2 views
0

Récemment, j'ai rencontré un problème causé par l'option calculée de vuejs.Lorsque v-for array est créé par des changs d'option calculés, le DOM ne change pas en conséquence

Premièrement, j'utilise v-for pour boucler un tableau (soloColImgs) qui est créé par l'option calculée.

mon code HTML

<div class="show-box" v-for="item in soloColImgs" track-by="$index"> 
       <img v-bind:src="item.imgUrl"/> 
       <a v-bind:href="item.itemUrl" target="_blank"></a> 
    </div> 

mon JS

//... 
    computed: { 
    soloColImgs :function(){ 
      //.... 
    }, 

    methods: { 
     change:function(){ 
       this.soloColImgs.pop(); 
      } 
     } 

Deuxièmement, je change le tableau (soloColImgs) en utilisant pop() ou splice() etc ... Quand je regarde dans la console, le tableau peut changer en conséquence, cependant, le DOM ne change pas du tout. Ce serait génial si quelqu'un pouvait m'aider à sortir de ça.

Répondre

1

Le point d'une propriété calculée est déterminé uniquement par la fonction qui la définit. Vous ne pouvez pas le modifier directement, vous devez le modifier en agissant sur les dépendances. Les dépendances sont les propriétés utilisées pour calculer la valeur renvoyée.

+0

Merci beaucoup! J'ai découvert exactement la même chose tout à l'heure. Et j'ai résolu mon problème en changeant les dépendances, la même idée que celle décrite dans votre réponse;) –