Vue.js динамические классы - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть html, используя Vue.js здесь:

<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>

У меня здесь есть javascript:

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

Я хочу установить класс в tabs.active, так как яс помощью начальной загрузки.Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Используйте привязку класса , например:

<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>
0 голосов
/ 10 декабря 2018

Добавить

 v-bind:class="tab.active"

Таким образом, ваш код должен выглядеть следующим образом:

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>
...