vue模板中如何判断一个变量值属于另一个变量数组的元素?

后端猿强学VUE,现在接口返回数据如下:

{

"errcode": 0,

"msg": "获取成功",

"data": {

"red_list": [

1,

2,

3,

4,

5,

6,

7,

8,

9

],

"red_selected": [

"2",

"5"

]

}

}

请教大神在模板中该如何判断 red_list 里的某个数是在 red_selected 数组里的呢?

我现在的写法如下(重点关注 class 属性),但是不行:

<li v-for="item in data.red_list" 

v-on:click="select(item, $event)" :id="`red${item}`"

:class="[data.red_selected.indexOf(item) === -1 ? 'redC1' : 'redC']">{{item}}

</li>


回答:

主要是key的类型匹配不上吧。请求玩完接口的时候,稍微修改一下就可以了。

vue"><script>

export default {

data(){

return {

red_list: [],

red_selected: []

}

},

//...

methods:{

loadData(){

//...

fetchAPI(params).then(res=>{

this.red_list = res.data.red_list

this.red_selected = res.data.red_selected.map(n=>Number(n)) // 字符串转数字类型

})

}

}

}

</script>

或者在匹配的时候变更一下类型

<template>

...

<li

v-for="item in data.red_list"

:id="`red${item}`"

:class="[red_selected.indexOf(''+item) === -1 ? 'redC1' : 'redC']"

v-on:click="select(item, $event)"

>{{item}}</li>

...

</template>

其实最好是接口返回的时候把类型统一。


回答:

<li v-for="item in data.red_list"
v-on:click="select(item, $event)" :id="red${item}"
:class="[data.red_selected.includes(item + '') ? 'redC1' : 'redC']">{{item}}
</li>


回答:

这样试一下

<li 

v-for="item in data.red_list"

v-on:click="select(item, $event)"

:id="`red${item}`"

:class="data.red_selected.includes(item.toString()) ? 'redC1' : 'redC'"

>{{item}}

</li>

以上是 vue模板中如何判断一个变量值属于另一个变量数组的元素? 的全部内容, 来源链接: utcz.com/p/933053.html

回到顶部