2017-05-26 73 views
0

我需要两个周期创建表V-的改变全局变量列表时,在vue.js

<tr v-for="(product, index) in mainOrderFood"> 
<tr v-for="(toping, i) in mainOrderFood[index]"> 
</tr> 
</tr> 

渲染,但如果你对viraible“索引”二线看,你会看到这个var没有索引的值,这个var监视全局范围。 我尝试做这样

<tr v-for="(product, index) in mainOrderFood"> <tr v-for="(toping, i) in product[index]"> </tr> </tr>

但VAR产品有一个像变种指数相同的范围内

我需要做的渲染阵列像

mainOrderFood: [ { name: 'name', props: [ {someprops: ''} ] } ]

+0

可能' '? – wostex

回答

1

(index, product)实际上是什么。但在你的情况下不需要任何索引。

假设你的JSON看起来像这样

mainOrderFood: [ 
        { 
         name: 'name', 
         props: [ 
         {someprops: ''} 
         ] 
        } 
        ] 

那么你会v-for这样的:

<tr v-for="product in mainOrderFood"> 
    <tr v-for="toping in product.props"> 
    </tr> 
</tr> 

这里是一个JSFiddle

HTML:

<div id="vue-instance"> 
    <table> 
    <tr v-for="product in mainOrderFood"> 
    <th>{{ product.name }}</th> 
    <td v-for="toping in product.topings"> 
     {{ toping }} 
    </td> 
    </tr> 
    </table> 
</div> 

个JS:

var vm = new Vue({ 
    el: '#vue-instance', 
    data: { 
    mainOrderFood: [ 
     { 
     name: 'Spaghetti', 
     topings: [ 
      'Bolognese', 'Cheese' 
     ] 
     }, 
     { 
     name: 'Pizza', 
     topings: [ 
      'Pepperoni', 'Funghi' 
     ] 
     } 

    ] 
    } 
}); 
+0

属性或方法“产品”未在实例上定义,但在渲染过程中引用。确保在数据选项中声明反应数据属性。 – user3383185

+0

请看我的示例https://jsfiddle.net/hph52gdq/7/ 我将td更改为tr并且表失败,为什么?在项目中,如果我喜欢在例子中,我会得到一个错误“属性或方法”产品“没有在实例上定义,但在渲染过程中引用。确保在数据选项中声明反应数据属性” – user3383185

+0

打开Javascript控制台并阅读消息。我认为vue无法在v-for循环的表中放置一个表格。这是非常罕见的,通常不需要。在引导程序中使用div和class = row和class = column。 – hol