vue在:class语法中,如何动态拼接变量

clipboard.png
如图,想在一个v-for循环中,动态拼接(item.realCode + 'LastWeek')使其成为一个变量来 动态求值

阅读 19.1k
7 个回答

我懂了……
你试试这个

<div>{{list[item.realCode+'LastWeek']}}</div>

模拟一个data:

data(){
    return {
        item: {
           realCode: 'word' 
        },
        list: {
            wordLastWeek: '2017-09',
            wordLastYear: '2016'
        }
    }
}

我这边的需求是根据 type 值,显示不同的 icon , 用下面的可以:
:class="'icon-'+item.type"

动态class是支持三目表达式的。:class="userinfo.memberLevel == 0 ? 'agreement_content' : 'agreement_content-o'".
:class="(item.realCode + 'LastWeek')<0 ? negative : positive"

我觉得拼不了。
可以试试使用methods解决。

:class="{negative:fun(index, 'lastWeek')}" 
methods: {
    fun (index, dateString) {
        return this[this.finalMetricColmns[index].realCode + dataString]
    }
}

其中index是当前item的索引

拼不了,vue在创建模板时候就绑定变量了,楼上的解决方法可行

都传到fun方法里处理啊!你想怎么搞就怎么搞

新手上路,请多包涵

:class="[for变量1]:!变量, [for变量2]: 变量"

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题