VueJS/Vuetify v-for 中的不同颜色芯片,检查带有参数的对象:使用点表示法的颜色

Posted

技术标签:

【中文标题】VueJS/Vuetify v-for 中的不同颜色芯片,检查带有参数的对象:使用点表示法的颜色【英文标题】:VueJS/Vuetify different color chips in v-for, checking against an object with argument: color using dot notation 【发布时间】:2019-03-14 12:50:19 【问题描述】:

我正在尝试通过使用方法、传递参数并尝试使用点符号返回颜色字符串来设置v-chip 的颜色:

<v-chip :color="stateColor(bug.workflow_state)" text-color="white"> bug.workflow_state </v-chip>

正确的值被传递给方法。我的argument: color 对象看起来像这样......

stateColors: 
  open: 'green',
  accepted: 'yellow',
  in_progress: 'orange'

...在数据函数中设置。我希望能够只返回一个 la:

stateColor (bugState) 
  return this.stateColors.bugState

this.stateColors.bugState 未定义。传入的 workflow_states 将全部匹配键,没有例外。这似乎更适合作为计算属性,但我也遇到点符号返回预期结果的问题。我的尝试是这样的:

stateColor: function () 
  return function (bugState) 
    return this.stateColors.bugState
  

在这两种尝试中,this.stateColors.open 确实返回绿色,但 this.stateColors.bugState 其中 bugState 实际上是“打开”返回未定义。 typeof(bugState) 绝对是一个字符串。只是寻找一种干净的方法来实现这一点,而不需要大量的 if 检查,我知道这会起作用。

【问题讨论】:

【参考方案1】:

您只是要求bugState 属性,它可能不存在。

相反,请询问与您的 bugState 变量匹配的密钥:

return this.stateColors[bugState]

【讨论】:

我确实发现了。不过谢谢一百万!

以上是关于VueJS/Vuetify v-for 中的不同颜色芯片,检查带有参数的对象:使用点表示法的颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vuejs/vuetify 中显示路径在 json fake server 中的图像?

两个 shallowmount 抛出错误 Jest VueJs(Vuetify)

jest + vuejs + vuetify 的意外标识符

javascript Vuejs Vuetify Vuex形式的例子

VueJs - Vuetify - v-navigation-drawer 与智能手机的迷你变体

vuejs / vuetify:手动关闭对话框的生成列表