类绑定三元运算符

sof*_*ode 11 javascript vue.js

我有一些相当繁琐的逻辑我想应用于元素类.

:class="{sportTypes.sports.indexOf(sport) > -1 ? 'is-primary' : 'is-outlined'}"
Run Code Online (Sandbox Code Playgroud)

以上情况不起作用,而以下情况如下:

:class="{'is-outlined': sportTypes.sports.indexOf(sport) > -1}"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

template syntax error - invalid expression:
Run Code Online (Sandbox Code Playgroud)

任何想法第一部分有什么问题?

Phi*_*hil 17

你有不必要的牙套.后一个表达式是一个对象,而第一个表达式只是一个返回字符串的三元表达式.

:class="sportTypes.sports.indexOf(sport) > -1 ? 'is-primary' : 'is-outlined'"
Run Code Online (Sandbox Code Playgroud)


m_c*_*ens 5

当您在 中应用类绑定时Vue,您只使用大括号进行对象样式分配,就像第二个语句中一样。对于单个绑定,您只需...

:class="sportTypes.sports.indexOf(sport) > -1 ? 'is-primary' : 'is-outlined'"
Run Code Online (Sandbox Code Playgroud)

如果您想在同一个逻辑语句中应用多个绑定,则可以将它们括起来[]{}并用逗号分隔。


Sau*_*abh 5

作为此处文档中给出的语法,您可以使用以下数组语法来实现此目的:

:class="[sportTypes.sports.indexOf(sport) > -1 ? 'is-primary' : 'is-outlined']"
Run Code Online (Sandbox Code Playgroud)