javascript - selectKinds 不是函数
问题描述
我是 Vue.js 的新手。我正在尝试这样使用v-for
:
<tbody v-for="item in handbookSiz.Items" :key="item.company_department_id">
<tr>
<td class="label" colspan="9">
<div class="tbody__icon">
<i class="fa fa-caret-down"></i>
</div>
<div class="tbody__text">
Plot №{{ item.company_department_id }}
</div>
</td>
</tr>
<tr class="dropdown">
<td colspan="9">
<table>
<tbody v-for="kind in selectKinds(item.kind_title)" :key="kind.siz_id">
...
</tbody>
</table>
item.kind_title
是包含另一个对象的对象。我需要从中选择一些对象。为此,我selectKinds
在以下computed
部分编写了函数:
selectKinds (item) {
let obj = item
let selectedKinds = []
for(let key in obj) {
if((key == 'workclothes') || (key == 'siz')) {
selectedKinds.push(obj[key])
}
}
return selectedKinds
}
这就是我的computed
部分的外观:
computed: {
filterData () {
const query = this.plot
let filteredData = []
let obj = this.handbookWorkers.Items
for(let key in obj) {
let el = obj[key]
if(el.company_department_id.indexOf(query) != -1) {
filteredData.push(el)
}
}
return filteredData
},
selectKinds (item) {
let obj = item
let selectedKinds = []
for(let key in obj) {
if((key == 'workclothes') || (key == 'siz')) {
selectedKinds.push(obj[key])
}
}
return selectedKinds
}
}
我在控制台中收到错误“selectKinds 不是函数”。
为什么会这样?我究竟做错了什么?
解决方案
new Vue({
el: "#app",
data: {
items: [{
company_department_id: 1,
kind_title: {
siz_id: 11,
workclothes: 'asd',
siz: 'aaa'
}
},
{
company_department_id: 2,
kind_title: {
siz_id: 21,
siz: 'bbb'
}
},
{
company_department_id: 3,
kind_title: {
siz_id: 31
}
}
]
},
computed: {
newItems() {
let list = this.items.map(v => {
v.selectedKinds = this.selectKinds(v.kind_title)
return v
})
return list
}
},
methods: {
selectKinds(item) {
let obj = item
let selectedKinds = []
for (let key in obj) {
if ((key === 'workclothes') || (key === 'siz')) {
selectedKinds.push(obj[key])
}
}
return selectedKinds
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<table>
<tbody v-for="item in newItems" :key="item.company_department_id">
<tr>
<td class="label" colspan="9">
<div class="tbody__icon">
<i class="fa fa-caret-down"></i>
</div>
<div class="tbody__text">
Plot №{{ item.company_department_id }}
</div>
</td>
</tr>
<tr class="dropdown">
<td colspan="9">
<table>
<tbody>
<tr>
<td v-for="(kind,i) in item.selectedKinds" :key="i">{{kind}}</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
推荐阅读
- mysql - mysql。如何通过多列进行选择
- flutter - 使用 bloc_test 和 mockito 进行颤振测试
- symfony4 - 如何将孩子添加到特殊位置(订单) KNP 菜单
- python - 我应该如何清理从 twitter API 检索到的这些数据?
- python - 在同一列中分隔多个变量
- android - 安卓5.1现在可以显示Seekbar,6、7、8、9、10可以正常显示
- python - Pandas Python中的多个时间范围选择
- python - 如何对列进行排序以便不显示 NaN?
- hook - 如何知道 CS 车钩何时触发?
- blazor - iis 上的随机 Blazor“未能在资源的“完整性”属性中找到有效的摘要”