JavaScript - vue 変数の更新で dom 更新をトリガーできません
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-12 09:29:44
0
10
1128

以下に示すように、v-for を使用してこの itemList を html でレンダリングし、各アイテムの active を通じてこのアイテムに対応する html を表示 (v-show) するかどうかを制御します。
しかし、このようにイベントメソッドselectItemでitemListを変更した場合、domは更新されないのでしょうか? ? ?

リーリー
女神的闺蜜爱上我
女神的闺蜜爱上我

全員に返信(10)
仅有的幸福

リーリー

いいねを押す +0
phpcn_u1582

vue.itemList[index].active = true に変更されました

いいねを押す +0
滿天的星座

selectItem に console.log(index) の値はありますか? この vue オブジェクトを取得するにはこれを使用する必要がありますか?

いいねを押す +0
曾经蜡笔没有小新

データの変更方法が間違っているため、エラーは報告されませんか?

リーリー
いいねを押す +0
某草草

提供されたデータ形式に従って、試してみたところ、コードは次のとおりです
`<p id="app">
<li v-for="(item,index) in itemList" v- on:click="selectItem(index)" v-if="item.active">

リーリー

</li>
</p>
<スクリプト>

リーリー

</script>`

いいねを押す +0
扔个三星炸死你

vue 内では、変数を使用して vue のインスタンスを保存する場合でも、これを通して行われません

リーリー
いいねを押す +0
阿神

たとえば、ここではオブジェクトの代わりに配列を使用する方が適切ですが、あなたの dom のレンダリングの失敗は間違っていないと思います。ここでは問題ではなく、選択データの一方向の流れの問題など、フォーム コントロールにバインドされる必要があります。

いいねを押す +0
巴扎黑

キー値モードは vue では監視できません。vue は $set メソッドを提供します。 。削除には
selectItem: function (index) {

も必要です リーリー

}、

いいねを押す +0
習慣沉默

Vueをこれに変更して試してください

いいねを押す +0
typecho

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート