在Vue.js中绑定数组项

时间:2018-09-06 01:16:52

标签: javascript vue.js data-binding

我有一个棚屋,里面包含一些数组和比例。

现在我要遍历数组并为每个项目创建新行。

这就是我在做什么。

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'”

1 个答案:

答案 0 :(得分:2)

您的HTML无效,似乎Vue的模板编译器或DOM渲染器对此有问题:<tr>必须仅具有<td><th>子元素,不能具有文本节点孩子们。

尝试以下方法:

<tr v-for="order in allOrders">
  <td>{{ order.NAME }}</td>
</tr>