vuejs2 - vue.js 将插值传递给属性(类)绑定的方法
问题描述
我正在使用 v-for 创建一个动态生成的按钮列表。我希望按钮根据按钮实体是否包含在应用程序状态对象的数组中来改变颜色。(我正在使用 vuetify,这就是为什么按钮对象是 v-btn)
<span v-for="x in ['A','B','C','D','E','F','G','H']">
<v-btn small elevation-10 :color="xIsSelected('{{x}}')?'blue':'purple'" @click="toggleX('{{x}}')" >{{x}}</v-btn>
</span>
toggleX 是一种从状态数组中添加或删除 x 值的方法;xIsSelected 是一种根据 x 是否在状态数组中返回 true 或 false 的方法
方法调用正在工作:我可以从开发人员工具中调用它们,如果我用数组值对按钮和方法调用进行硬编码,它也可以工作。问题是 {{x}} 的插值没有被传递到方法调用中,而是传递了文字“{{x}}”。我尝试过使用类语法,但无法理解引号、双引号和反引号。
解决方案
要通过x
你只需要写:
:color="xIsSelected(x) ? 'blue' : 'purple'"
v-bind
与(或简写)绑定的属性:
已经是 JavaScript 表达式,它们可以x
直接访问。无需在该表达式中引入任何其他形式的模板或插值。
推荐阅读
- java - 为什么 Java 无法读取某些包含 utf-8 字符的目录?
- docker - 在没有原始 Dockerfile 的情况下更新 docker 映像
- macos - 面向 macOS 的 Xamarin.Forms
- java - 如果重复,如何返回字符串的第一个字符?
- sql - 如何聚合基于列的多个条件以获得更好的性能?
- python - Python中的`import ab as b`和`b=ab`之间有什么区别吗?
- html - 带有网格和 ngFor 的离子模式
- typescript - Angular 6将可注射数组传递给app.module.ts中的提供者导致:“无法读取未定义的属性'长度'时出错”
- ios - Xcode 10 构建失败,“命令 CompileSwift 失败,退出代码非零”
- python - PyAudio 回调仅被调用一次