【发布时间】:2019-05-02 23:27:20
【问题描述】:
我觉得我快崩溃了,这是一些非常基本的东西,但它似乎不起作用......
基本上点击链接应该在真假之间切换display,但事实并非如此。
Vue.component('dropdown', {
props: [ 'expanded' ],
data: function() {
return {
display: !!(this.expanded)
}
},
template: '<div><transition name="expand"><slot :display="display"></slot></transition></div>'
});
window.app = new Vue({
el: '#app'
});
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<dropdown>
<div slot-scope="{ display }">
<a href="javascript:void(0)" @click="display = !display">Toggle {{ display }}</a>
<div v-if="display">
Dropdown content
</div>
</div>
</dropdown>
</div>
编辑:
更新的代码,我忘了我改变了,我确实有点击事件为display = !display。但是即使这样说,如果您尝试单击按钮,您会发现它也不会改变 true...
【问题讨论】:
-
@click="display = true"总是将其设置为 true。@click="display = !display",也许? -
您只需要
@click="display = !display" -
根据您在现已删除的答案中的更新,尝试
@click.prevent。
标签: javascript vue.js