【问题标题】:vue idb format variablevue idb 格式变量
【发布时间】:2017-09-06 18:44:57
【问题描述】:

您好,我正在使用 vuex 和 vue idb 制作一个 Web 应用程序。 在我的一个观点中,我有一个带有过滤字段的表格。 我的数据使用 vue-idb 存储,过滤字段使用输入文本框事件和列单元格的标题名称调用 applyFilter 方法函数

这是我的html

...some html     
<!--columns filters-->
            <tr>
              <td v-if='shownHeaders.length > 0'>
                <input type='checkbox' @change='updateCheckboxList(-1)' :checked='checkAllCheckbox'>
              </td>

              <td v-for='(header,index) in headers' v-if='headers.indexOf(header)>-1'>
                <input @keyup="applyFilter(header,$event )" :disabled="thinking" :placeholder='header +" filter"'>
              </td>
            </tr>

这是我的组件

some code ...

applyFilter (header, e) {
      // apply filter after enter key has been pressed
      if (e.keyCode === 13) {
        console.log('Filtering column ' + header + ' with ' + e.target.value)
        // not working unsing dynamical variable, but it does while using static variable like uid
        store.dispatch('tasksSetFilter', {header: e.target.value}) // this doesn't works
        // store.dispatch('tasksSetFilter', {id: e.target.value}) // this works

我的问题是我无法使用 header 变量(一个字符串)作为通过 tasksSetFilter 传递的 dict 的键,但是如果我将它替换为具有相同名称的变量,它就可以工作。

有没有办法将字符串转换为变量名来解决我的问题?

【问题讨论】:

  • 什么是taskSetFilter
  • 您好 Bert,taskSetFilter 引用 idb github.com/ddgll/vue-idb/wiki/6-Big-lists 并允许您在我的情况下在任务数据库上设置过滤器,但任务可以替换为任何其他数据库名称。
  • 如果我理解正确,header 包含一个值,您希望将其作为要传递给操作的对象的键?
  • header 是列的名称,例如它可以是“id”。我的问题是如果我用'id'替换标题它不起作用,但如果我用id替换它它会这样做

标签: vuejs2 store indexeddb vuex


【解决方案1】:

试试这个:

store.dispatch('tasksSetFilter', {[header]: e.target.value})

这个语法的作用是将参数设置为一个对象,其中 key 将是 headervalue 是什么。这是 ES2015 中出现的一种较新的语法。

如果你不支持 ES2015,你可以这样构建参数:

let filter = {}
filter[header] = e.target.value
store.dispatch('tasksSetFilter', filter)

【讨论】:

  • 它有效,谢谢。现在有可能 [] 做什么?
  • 方括号只是向 javascript 表明它应该使用标头的 value 作为您正在定义的对象的键。看到这个:stackoverflow.com/questions/2462800/…
猜你喜欢
  • 2015-06-15
  • 2017-12-26
  • 2019-10-20
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 2021-12-29
  • 2022-01-03
  • 2015-04-16
相关资源
最近更新 更多