2
私は2列レイアウトです。左の列には積み重ねられたメニューがあり、ユーザーがオプションを選択すると、コンテンツが右に表示されます。選択したメニューリンクにactive
クラスを設定する最良の方法は何ですか?Vueでアクティブなメニューオプションを設定する方法
私は以下の解決策を思いつきましたが、それは冗長なようです。各メニュー項目には、data.activeTab
を条件とするクラス割り当てがあります。クリックイベントハンドラは、data.activeTab
の値を更新します。
<template>
<div>
<div class="row">
<div class="col-md-3">
<ul class="nav nav-pills nav-stacked">
<li role="presentation" :class="{active : activeTab == 'option1'}">
<a :href="'/#/sales/' + uuid + '/option1'" @click="updateMenu">Option 1</a>
</li>
<li role="presentation" :class="{active : activeTab == 'option2'}">
<a :href="'/#/sales/' + uuid + '/option2'" @click="updateMenu">Option 2</a>
</li>
</ul>
</div>
<div class="col-md-9">
<router-view></router-view>
</div>
</div>
</div>
</template>
<script>
export default {
data : function() {
return {
activeTab : 'option1'
}
},
props : [
'uuid'
],
methods : {
updateMenu : function (event) {
var str = event.target.toString();
this.activeTab = str.substr(str.lastIndexOf('/') + 1);
}
}
}
</script>
あなたのソリューションは、私はちょうど、リンクをクリックしたときに動作しません。しかし、それはサブメニューのリフレッシュのためには機能しません。左側のサイドバーに[admin-lite template](https://adminlte.io/themes/AdminLTE/index.html#)を使用します。あなたは私にその解決策を教えてくれませんか? –