类绑定三元运算符

时间:2017-01-31 23:22:28

标签: javascript vue.js

我想要将一些相当麻烦的逻辑应用于元素类。

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

以上不起作用,而以下是:

:class="{'is-outlined': sportTypes.sports.indexOf(sport) > -1}"

我收到以下错误

template syntax error - invalid expression:

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

3 个答案:

答案 0 :(得分:11)

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

:class="sportTypes.sports.indexOf(sport) > -1 ? 'is-primary' : 'is-outlined'"

答案 1 :(得分:1)

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

:class="sportTypes.sports.indexOf(sport) > -1 ? 'is-primary' : 'is-outlined'"

如果您想在同一个逻辑语句中应用多个绑定,请将它们包围在[]而不是{}中,并用逗号分隔。

答案 2 :(得分:1)

与文档here中给出的语法相同,您可以使用以下数组语法来实现此目的:

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