【发布时间】:2016-10-31 22:24:42
【问题描述】:
我希望使用 Vue JS 切换一个类。我已经阅读了The Class and Style bindings 文档,但我仍在努力找出切换类的正确方法。
为了简洁起见,我简化了我的代码,但基本上我有一个包含 4 个“计划”的列表,每个“计划”都有一个按钮,允许用户选择他们想要购买的计划。使用当前代码添加了活动类,但是当您单击另一个计划中的按钮时,该类仍保留在现在非活动计划中。
这是 HTML。
<div id="app">
<ul class="plans">
<plan-component :
name="Basic"
></plan-component>
<plan-component :
name="Recreational"
></plan-component>
<plan-component :
name="Team"
></plan-component>
<plan-component :
name="Club"
></plan-component>
</ul>
<template id="plan-component">
<li v-bind:class="{ 'active-plan': isActive }">
<h2 class="plan-name">{{ name }}</h2>
<a href="#" v-on:click="makeActivePlan($event)" class="select-plan button">Choose this plan</a>
</li>
</template>
</div>
这里是 JS。
Vue.component('plan-component', {
template: '#plan-component',
props: ['name', 'isActive'],
methods: {
makeActivePlan(e) {
// We dispatch an event setting this to become the active plan
e.preventDefault();
this.isActive = true;
this.$dispatch('set-active-plan', this);
}
}
});
new Vue({
el: '#app',
data: {
activePlan: { name: 'n/a' }
},
events: {
'set-active-plan': function(plan) {
this.activePlan = plan;
}
},
});
【问题讨论】:
标签: vue.js