suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Problem beim Kombinieren von v-for und v-if in Vue?

Verwenden Sie v-for, um N Folge-Schaltflächen zu durchlaufen, klicken Sie auf eine der Folge-Schaltflächen und die entsprechende Folge-Schaltfläche wird zum ersten Mal angezeigt

 <img v-if='flag' @click='change()' :src='countries[num]' alt="">//关注
    <img v-if='!flag' :src='countriesHasAttention[num]' alt="">//  已关注
    data () {
        return {
            flag: true
        }
    }    
    change: function () {
        this.flag = false
    }
    

Ich habe festgestellt, dass sich alles geändert hat, als ich auf eines geklickt habe, und habe dann die Flagge in ein Array geändert

<img v-if='flag[index]' @click='change(index)' :src='countries[num]' alt=""> //关注
<img v-if='!flag[index]' :src='countriesHasAttention[num]' alt="">    //  已关注
data () {
        return {
            flag: [true, true, true]
        }
}   
change: function (index) {
        this.flag[index] = false
}

发现这样做点击的时候按钮不发生变化。
求大神指导一下
PHP中文网PHP中文网2756 Tage vor782

Antworte allen(2)Ich werde antworten

  • 仅有的幸福

    仅有的幸福2017-06-26 10:55:49

    change部分改为
    Vue.set

    change(index){
        Vue.set(this.flag,index,false)
    }

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-26 10:55:49

    模板可以简化成这样:

    <img @click="change(index)" :src="flag[index] ? countries[num] : countriesHasAttention[num]" alt="">

    数据处理这一块上面的答案是对的,参见:数组更新检测

    Antwort
    0
  • StornierenAntwort