【发布时间】:2016-10-09 16:08:09
【问题描述】:
当我拥有多个具有单独数据的模板时,我无法将模型中的数据填充到代码中。我需要的是第一个模板在 firstFormDetails 数组中渲染的对象数量与第二个相同。下面是我的代码示例:
<div id="app">
<first v-for="item in secondFormDetails" track-by="id"></first>
<second v-for="item in firstFormDetails" track-by="id"></second>
</div>
<template id="template-first">
<div> {{ item.docNumber }}</div>
</template>
<template id="template-second">
<div> {{ item.docNumber }}</div>
</template>
和VueJs模块如下:
Vue.component('first', {
template: '#template-first',
data: function() {
return {
firstFormDetails: [
{docNumber: 7},
{docNumber: 7777},
{docNumber: 10000}
]
}
}
});
Vue.component('second', {
template: '#template-second',
data: function() {
return {
secondFormDetails: [
{docNumber: 1908},
{docNumber: 7777},
{docNumber: 10000}
]
}
}
});
new Vue({
el: '#app'
});
【问题讨论】:
-
您引用的数据不正确。您的数据需要位于父组件中才能使用 v-for
-
我需要在组件之间拆分数据,因为每个模板都有不同的 HTML,并且应该通过 AJAX 加载不同的数据。我找到了她的一个例子 - v1.vuejs.org/guide/components.html#Component-Option-Caveats
-
尝试为每个组件添加一个 prop 并将值绑定到它。您的道具将是项目,绑定在您的 v-for 中看起来像
:item="item",并且在每个组件中您将添加props: ['item']。或者更好的解决方案是将v-for移动到数据实际所在的子组件或将数据向上移动到父组件
标签: vue.js