vue.js - v-for 将单个对象视为对象集合
问题描述
我有一个对象(我们称之为employments
)
{
StartDate: "2018-01-01",
Name: "Chris"
}
有时employments
会是对象的集合,例如:
{
StartDate: "2018-01-01",
Name: "Chris"
},
{
StartDate: "2017-01-01",
Name: "Adam Brown"
}
如果我这样迭代
<div v-for="employment in employments">
<p>{{employment.StartDate}}</p>
<p>{{employment.Name}}</p>
</div>
第一个对象示例中给定的键(例如employment.StartDate
)将失败,因为 v-for 将遍历对象的键而不是整个对象。第二个对象集合将正常工作。
如何强制 v-for 将示例中给出的两个对象视为相同?
解决方案
您不能强制v-for
将对象视为数组;在迭代之前,您需要将数据转换为正确的格式;类型检查可能是一种选择:
v-for="employment in (Array.isArray(employments) ? employments : [employments])"