初始化按钮的disabled 的Boolear

列表一共有十条数据,当点击记录详情进到详情页传1, 如果列表有五条数据,点击第五个的时候,如何让下一条按钮给禁用,上一条可以点击 下面的两个按钮就是
image.png

image.png

这里代码是初始化控制disabled 的值
image.png

阅读 1.8k
3 个回答

这和分页<>是一个道理吧,既然能知道点击的是第几条就可以给disable赋值,table的length可以直接获取

直接用itemindex的值控制按钮的disabled就可以了

this.disabledNext = this.itemindex >= 10
this.disabledPrevious = this.itemindex <= 1

然后点击详情和按钮的时候更新itemindex值

vue 的话,推荐把 disabledPreviousdisabledNext 设置为 computed 属性,使其自动跟着 itemIndex 变化。
点击详情按钮更新 itemIndex 为当前点击项的索引,点击上一条 itemIndex - 1 下一条 itemIndex + 1

html

<table>
  <tr>
    <th>用户名</th>
    <th>操作</th>
  </tr>
  <tr v-for="(item, index) of list">
    <td>
      {{ item.name }}
    </td>
    <td>
      <button @click="onDetailClick(item, index)">记录详情</button>
    </td>
  </tr>
</table>
<button :disabled="disabledPrevious" @click="onPreviousClick">上一条</button>
<button :disabled="disabledNext" @click="onNextClick">下一条</button>

js

{
  data: {
    list: [
      { name: '小明' },
      { name: '小黑' },
      { name: '张三' },
      { name: '李四' }
    ],
    itemIndex: 0
  },
  computed: {
    disabledPrevious() {
      return this.itemIndex <= 0
    },
    disabledNext() {
      return this.itemIndex >= this.list.length - 1
    }
  },
  methods: {
    onDetailClick(item, index) {
      this.itemIndex = index
    },
    onPreviousClick() {
      this.itemIndex--;
    },
    onNextClick() {
      this.itemIndex++;
    }
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题