client-row
というコンポーネントのリストがあり、1つを選択するとスタイルを変更したいです。新しい行を選択するときに、前に選択した行からスタイリングを削除しようとするときに問題が発生します。Vue:スタイルリスト行が選択されている場合
Vue.component('client-row', {
template: '#client-row',
props: {
client: Object,
},
data: function() {
return {
selected: false
}
},
methods: {
select: function() {
// Does not work properly
el = document.querySelector('.chosen_row')
console.log(el)
if (el) {
el.className = el.className - "chosen_row"
}
this.selected = true
this.$emit('selected', this.client)
}
}
})
<script type="text/x-template" id="client-row">
<tr v-bind:class="{ 'chosen_row': selected }">
<td>{{ client.name }}</td>
<td>{{ client.location_name || 'no location found' }}</td>
<td>{{ client.email || 'no email found' }}</td>
<td><button class="btn btn-sm btn-awaken" @click="select()">Select</button></td>
</tr>
</script>
は私がきちんとselected
プロパティ、を設定することができますが、確実にそれを削除するように見えることはできません。
よく考えられた答えをありがとう。いったん私がDOM操作を書いたら、私はそれが間違った方法であることを知っていたので、私はこれを最初に尋ねました! 'クライアント== selectedClient'ははるかに良いです:) –
一つのこと。私の小道具が選択を更新していないようです。それがどうして起こるのか? –
わかりません、コードを共有できますか? – kmc059000