Jas*_*son 5 javascript vue.js vuetify.js
我正在尝试使用 Vuetify 2.3.5 以编程方式打开和关闭扩展面板
<v-expansion-panels accordion>
<v-expansion-panel v-for="(item,i) in faqs" :key="i">
<div class="expansion-panel-header-container">
<div class="handle"><v-icon>$drag_icon</v-icon></div>
<v-expansion-panel-header hide-actions expand-icon="$edit">
<span class="font-weight-bold">{{item.question}}</span>
</v-expansion-panel-header>
<div class="action-icons">
<v-icon @click.native="doSomething">$edit</v-icon>
<v-icon>$delete</v-icon>
</div>
</div>
<v-expansion-panel-content>
CONTENT GOES HERE
</v-expansion-panel-content>
<v-expansion-panels accordion>
Run Code Online (Sandbox Code Playgroud)
目前, v-expansion-panel-header 成为触发面板打开和关闭的整个按钮,但我想禁用该功能并用它触发打开和关闭<v-icon @click.native="doSomething">$edit</v-icon>。
我找不到有关如何执行此操作的任何文档。
有谁知道我如何才能实现这个功能?
您需要做的就是添加一个v-model. 当您将值设置为null所有面板时,将关闭:
<v-expansion-panels v-model="openedPanel" accordion>
...
Run Code Online (Sandbox Code Playgroud)
data () {
return {
openedPanel: null
}
},
methods: {
closeAllPanels () {
this.openedPanel = null
},
openPanel (index) {
this.openedPanel = index
}
}
Run Code Online (Sandbox Code Playgroud)
如果您希望能够同时打开多个面板,请改用数组:
<v-expansion-panels v-model="openedPanel" multiple accordion>
...
Run Code Online (Sandbox Code Playgroud)
data () {
return {
openedPanel: []
}
},
methods: {
closeAllPanels () {
this.openedPanel = []
},
openPanel (index) {
this.openedPanel.push(index)
},
closePanel (index) {
this.openedPanel.splice(index, 1)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4540 次 |
| 最近记录: |