'beforeCreate'ライフサイクル中にAJAX呼び出しを行い、受信データでデータ変数を更新しています。私はこのようにvを使ってデータを補間することができます。ただし、条件文、イベント処理、バインドはこのコンテキスト内では機能しません。私はこのような何かをしたいHTMLで条件式、イベント処理、バインディングがAJAX呼び出し後に機能しない
var app = new Vue({
el: '#app',
data: {
items: [],
isVisible: []
},
beforeCreate: function() {
var vm = this;
// make ajax call
// on done
.done(function(res) {
// do some validation
vm.items = res.itemList;
for (var i = 0; i < vm.items.length; i++) {
vm.isVisible.push(false) // initialize to false
}
})
}
)}
:
<div v-for="(item, index) in items">
<img :src="item.imgURL1" v-if="isVisible[index]">
<img :src="item.imgURL2" v-else>
<button @click="isVisible[index] = !isVisible[index]>Toggle</button>
</div>
私はこのような何かを実装する方法上の任意の提案は?
実際、あなたのようにv-forの設定があります。私がコード例を思いついたときにそれを書くのを忘れてしまった。これで問題は解決されません。 – Grant
@Grantまだあなたは 'isVisible [i]'ではない 'isVisible [index]'を使用していますか?何かエラーが出ていますか? 'items'は正しく設定されており、' {{items}} 'のようにHTMLで取得できますか? – Saurabh
はい、私は項目配列の値を問題なく配置できます。 – Grant