简体   繁体   English

Vue.js 动态类

[英]Vue.js dynamic classes

I have some html using Vue.js here:我在这里有一些使用 Vue.js 的 html:

<div id="app">
  <ul class="navbar-nav">
      <li class="nav-item" v-for="tab in tabs">
          <a href="#" class="nav-link">{{ tab.name }}</a>
      </li>
  </ul>
</div>

I have the javascript here:我这里有javascript:

var app = new Vue({
  el: '#app',
  data: {
      tabs: [
        { name: "Home", active: "" },
        { name: "Challenges", active: "active" },
        { name: "Scoreboard", active: "" },
        { name: "About", active: "" }
    ]
  }
});

I want to set class to tabs.active since I'm using bootstrap.我想将类设置为 tabs.active,因为我使用的是引导程序。 How can I do that?我怎样才能做到这一点?

Add添加

 v-bind:class="tab.active"

So your code should look like this:所以你的代码应该是这样的:

 var app = new Vue({ el: '#app', data: { tabs: [{ name: "Home", active: "" }, { name: "Challenges", active: "active" }, { name: "Scoreboard", active: "" }, { name: "About", active: "" } ] } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <ul class="navbar-nav"> <li class="nav-item" v-for="tab in tabs" v-bind:class="tab.active"> <a href="#" class="nav-link">{{ tab.name }}</a> </li> </ul> </div>

Use a class binding like this:使用这样的类绑定

<li class="nav-item" :class="{active: tab.active === 'active'}" v-for="tab in tabs">

 new Vue({ el: '#app', data: { tabs: [ { name: "Home", active: "" }, { name: "Challenges", active: "active" }, { name: "Scoreboard", active: "" }, { name: "About", active: "" } ] } });
 .active .nav-link { color: white; background: blue; }
 <script src="https://unpkg.com/vue@2.5.17"></script> <div id="app"> <ul class="navbar-nav"> <li class="nav-item" :class="{active: tab.active === 'active'}" v-for="tab in tabs"> <a href="#" class="nav-link">{{ tab.name }}</a> </li> </ul> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM