【问题标题】:Bootstrap nav-pills in vue js 2vue js 2中的引导导航药丸
【发布时间】:2017-08-26 08:05:05
【问题描述】:

jsfiddle 是 https://jsfiddle.net/r6o9h6zm/2/

我在 vue js 2 中使用了引导导航药丸,根据所选选项卡显示数据(即,如果单击标准非空调房间,则需要显示该特定房间的记录)但我在这里在实例中获取所有三个房间,我使用以下方法来实现它,但它没有给出任何结果。

HTML:

<div id="app">
<div class="room-tab">
  <ul class="nav nav-pills nav-justified tab-line">
    <li v-for="(item, index) in items" v-bind:class="{'active' : index === 0}">
      <a :href="item.id" data-toggle="pill"> {{ item.title }} </a>
    </li>
  </ul>
  <div class="room-wrapper tab-content">
    <div  v-for="(item, index) in items" v-bind:class="{'active' : index === 0}" :id="item.id">
      <div class="row">
        <div class="col-md-8">
        <div class="col-md-4">
          <h3>{{item.title}}</h3>
          <p>{{item.content}}</p>
        </div>
      </div>
    </div><br>
  </div>
</div>

脚本:

new Vue({
  el: '#app',
    data: {
  items: [
            {
                id: "0",
                title: "Standard Non AC Room",
                content: "Non AC Room",
            },
            {
                id: "1",
                title: "Standard AC Room",
                content: "AC Room",
            },
            {
                id: "2",
                title: "Deluxe Room",
                content: "Super Speciality Room",
            },
        ],
  }
})

我如何才能得到只选择房间类型的记录而其他需要隐藏的结果?

【问题讨论】:

  • 不确定是不是你想要的:jsfiddle.net/6d0zfnxL
  • 显示为invalid expression: @click="{selectedIndex = index}"

标签: html twitter-bootstrap vue.js vuejs2 nav-pills


【解决方案1】:

添加data 属性currentSelected: 0 以跟踪选择了哪个房间

new Vue({
  el: '#app',
    data: {
        currentSelected: 0,
          items: [
            {
                id: "0",
                title: "Standard Non AC Room",
                content: "Non AC Room",
            },
            {
                id: "1",
                title: "Standard AC Room",
                content: "AC Room",
            },
            {
                id: "2",
                title: "Deluxe Room",
                content: "Super Speciality Room",
            },
        ],
  },
  methods:{
      selectRoom(index){
          this.currentSelected = index
      }
  }
}) 

在每个导航丸上添加一个点击监听器以更改选定的房间

<div id="app">
<div class="room-tab">
  <ul class="nav nav-pills nav-justified tab-line">
    <li 
        v-for="(item, index) in items" 
        v-bind:class="{'active' : index === currentSelected}"
        @click="selectRoom(index)">
      <a> {{ item.title }} </a>
    </li>
  </ul>
  <div class="room-wrapper tab-content">
    <div  
        v-for="(item, index) in items" 
        v-bind:class="{'active' : index === 0}"
        v-if="index === currentSelected"
        :key="item.id">
      <div class="row">
        <div class="col-md-8">
        <div class="col-md-4">
          <h3>{{item.title}}</h3>
          <p>{{item.content}}</p>
        </div>
      </div>
    </div><br>
  </div>
</div>

这里是updated fiddle

【讨论】:

  • 这是我真正需要的。
  • @ManiRaj 甚至 thisdotvoid 答案是正确的......他有点击监听器代码内联,我的被分成一个方法......就是这样
  • 是的,我也同意你的观点,thisdotvoid answer is correct..
猜你喜欢
  • 2018-09-12
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多