如何将值从 v-select 传递给方法 - 它始终与默认值相同

问题描述

我有一个函数,我想使用 v-select 在我的 Vue 应用程序中传递一个值。 v-select 是从数据数组“章节”填充的。 然后我想使用选定的 id 传递给一个函数

我的数据返回中有一个空数据变量“chapterIdFilter”,它的值设置为 1 - 这会预过滤我的 vuetify 数据表

如何将 id 的值 -chapterIdFilter - 从我的 v-select 下拉列表传递到我的方法中的一个函数,以便我可以用它过滤表? chapterIdFilter 始终为“1”

    <v-select
          :model="chapterIdFilter"
          :items="chapters"
          item-text="locale.en.title"
          item-value="id"
          label="Filter by Chapter"
          @change="currentDataItems(chapterIdFilter)"
        />

方法

currentDataItems (chapterIdFilter) {
    console.log(chapterIdFilter)
    return this.portals.filter(val => val.chapterId === parseInt(chapterIdFilter)) // this.portals.filter(val => val.chapterId === '1')
  }

更新:

所以下面的代码可以正常工作,但我不确定它应该或知道为什么

    currentDataItems (chapterIdFilter) {
  
    console.log(chapterIdFilter)
    this.chapterIdFilter = chapterIdFilter
    return this.portals.filter(val => val.chapterId === parseInt(this.chapterIdFilter)) 
  },

解决方法

您应该将 v-model 指令绑定到 data 属性并在您的方法中与 this 一起使用:

    <v-select
          v-model="chapterIdFilter"
          :items="chapters"
          item-text="locale.en.title"
          item-value="id"
           return-object
          label="Filter by Chapter"
          @change="currentDataItems"
        />

方法:

currentDataItems () {
    console.log(this.chapterIdFilter)
    return this.portals.filter(val => val.chapterId === parseInt(this.chapterIdFilter))
  }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...