私はこのようなルックスの種類のオブジェクトがあります。Vueのオブジェクトのプロパティは、V-バインドを変更していない:クラス
:私はこのような私が表示午前のグループにこのオブジェクトを分割している{
data: [
{
id: 28,
type: "blabla",
name: "myname",
language: "en",
active: true
},
{
id: 5,
type: "blabla",
name: "myname2",
language: "fr",
active: false
},
// etc
]
}
を
<li class="suggestion" v-for="suggestion in group">
<a href="#" :class="{ active: suggestion.active }"></a>
</li>
Vueオブジェクトにposition
プロパティがあるため、結果を強調したいと思います。これは変更することができます。
私は、位置属性に設定さウォッチャーがあります
position() {
this.suggestions.forEach((suggestion, index) => {
suggestion.active = index === this.position;
});
}
それは、現在の位置(したがって、現在の項目がアクティブ)になります。これは、オブジェクトとそのプロパティの配列をチェックしているときにうまく動作します。アイテムは.active
プロパティを完全に変更します。しかし、クラスバインディングは再評価されていないようです。
ここで何が問題になりますか?最初のアクティブ状態は考慮され、最初の項目は完全にうまく強調表示されます。
実際のクラスの変更には何も起こりませんが、Vue devtoolsではオブジェクトのプロパティが変更されているとは限りません。
。オブジェクトのプロパティはオブジェクト自体ではなく変更されているため。 Vueはレンダリングしません。あなたは私が推測するいくつかのウォッチャーを設定する必要があります。 – abhishekkannojia
@ abhishekkannojia最初の実行では、しかし、プロパティをevaulateようだが、それは奇妙です。 –
@ Stephan-vので、ウォッチャーでポジションを見るときにデータオブジェクトまたはグループアレイを変更しますか? – peaceman