我有一个棚屋,里面包含一些数组和比例。
现在我要遍历数组并为每个项目创建新行。
这就是我在做什么。
var orderDetails = [{
"ID": "1",
"NAME": "Item1",
"Orders": [
"ORD001"
],
"Purchases": [
"RhynoMock",
"Ember"
],
"ISENABLED": "false"
},
{
"ID": "2",
"NAME": "Item2",
"Orders": [
"ORD002",
"ORD008"
],
"Purchases": [
"StufferShop"
],
"ISENABLED": "false"
}
];
var app = new Vue({
el: '#ordersDiv',
data: {
allOrders: orderDetails
}
});
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="ordersDiv">
<table>
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr v-for="order in allOrders">{{ order.NAME }}</tr>
</table>
</div>
得到错误,
[Vue警告]:渲染错误:“ TypeError:无法读取未定义的属性'NAME'”
答案 0 :(得分:2)
您的HTML无效,似乎Vue的模板编译器或DOM渲染器对此有问题:<tr>
必须仅具有<td>
或<th>
子元素,不能具有文本节点孩子们。
尝试以下方法:
<tr v-for="order in allOrders">
<td>{{ order.NAME }}</td>
</tr>