就是有兩個(gè)表,一個(gè)商品表,一個(gè)版本表,要把這兩個(gè)表的內(nèi)容放到一個(gè)table里,每一行是一個(gè)商品名,每一行里面的屬性包括多個(gè)版本名,具體表格類似下面
我寫了代碼,但是報(bào)錯(cuò)TypeError: Cannot read property 'ver_list' of undefined ,我確定不是因?yàn)関-for版本寫錯(cuò)了,因?yàn)槿绻野裻h上的v-for商品刪掉換成ul上的v-for版本就沒(méi)問(wèn)題,我該怎么改?
數(shù)據(jù)是這樣的
goods_list[{goods_id:1,goods_name:'書'}{goods_id:1,goods_name:'筆'}]
ver_list[{ver_id:1,goods_id:2,ver_name:'鉛筆'}{ver_id:2,goods_id:2,ver_name:'筆'}{ver_id:3,goods_id:1,ver_name:'名著'}]
我寫的代碼是
<template id="list_box">
<div>
<table class="table table-hover">
<tr>
<th>ID</th>
<th>商品名稱</th>
<th>屬性</th>
<th>操作</th>
</tr>
<!-- 這里沒(méi)報(bào)錯(cuò) -->
<tr v-for="(info,index) in this.$parent.goods_list" >
<td>{{index+1}}</td>
<td>{{info.goods_name}}</td>
<td>
<!-- 這里報(bào)錯(cuò),
TypeError: Cannot read property 'ver_list' of undefined
-->
<ul v-for="(info1,index1) in this.$parent.ver_list"
v-if="info1.goods_id==info.goods_id">
<li>{{info1.ver_name}}</li>
</ul>
</td>
<td>
<a href="">修改</a>
</td>
</tr>
</table>
</div>
</template>
結(jié)構(gòu)是
new Vue({
router,
el:".container",
data:{
goods_list:[],
ver_list:[],
},
created(){
this.goods_list = JSON.parse(localStorage.getItem('goods_list'))
if (this.goods_list==null) {
this.goods_list = []
}
this.ver_list = JSON.parse(localStorage.getItem('ver_list'))
if (this.ver_list==null) {
this.ver_list = []
}
console.log(this.ver_list)
},
})
router是這么定義的
{
path:'/',
component:{
template:'#list_box',
}
}
可以貼出你的數(shù)據(jù)么,因?yàn)楦鶕?jù)報(bào)錯(cuò)信息來(lái)看應(yīng)該是你的數(shù)據(jù)里面沒(méi)有 ver_list 這個(gè)屬性
原因應(yīng)該是雙重for中this的指向題
我改了下你看看
主要是吧 this.$parent 當(dāng)做一個(gè)變量來(lái)處理 ,現(xiàn)在可以達(dá)到你要的效果了
path:'/add',
component:{
data(){
return {
goods_id:'',
goods_name:'',
ver_id:'',
ver_name:'',
ver_introduction:'',
color_name:'',
goods_price:'',
ver_list1:[],
color_list:[],
$parent: this.$parent
}
},
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>小米商品管理</title>
<link rel="stylesheet" type="text/css" >
<script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js" type="text/javascript"></script>
<script type="text/javascript" src="https://cdn.bootcss.com/vue-router/2.7.0/vue-router.min.js"></script>
<style>
.ver_box li{width: 33%;float: left;}
.border{border: 1px solid black}
</style>
</head>
<body>
<div class="container">
<h2>商品管理</h2>
<router-link to="/" class="btn btn-primary">列表</router-link>
<router-link to="/add" class="btn btn-info">添加</router-link>
<router-view></router-view>
</div>
<template id="list_box">
<div>
<table class="table table-hover">
<tr>
<th>ID</th>
<th>商品名稱</th>
<th>屬性</th>
<th>操作</th>
</tr>
<tr v-for="(info,index) in $parent.goods_list" >
<td>{{index+1}}</td>
<td>{{info.goods_name}}</td>
<td>
<!-- 加上這個(gè)就報(bào)錯(cuò)-->
<p v-model="1+1"></p>
<ul v-for="(info1,index1) in $parent.ver_list">
<li>{{info1.ver_name}}</li>
</ul>
</td>
<td>
<a href="">修改</a>
</td>
</tr>
<!-- 測(cè)試,直接打印ver_list,沒(méi)問(wèn)題 -->
<tr v-for="(info1,index1) in $parent.ver_list" >
<td>{{index1+1}}</td>
<td>{{info1.ver_name}}</td>
<td>
</td>
<td>
<a href="">修改</a>
</td>
</tr>
</table>
</template>
<template id="add_box">
<div>
<form action="" class="from">
<div class="form-group">
<label >商品名稱</label>
<input type="text" class="form-control" v-model="goods_name"></div>
<div class="form-group">
<label >
版本
<a @click="add_version()" class="btn btn-info">添加版本</a>
</label>
<ul class="ver_box">
<li v-for="(ver_info,index) in ver_list1">
版本{{index+1}}:
<input type="text" v-model="ver_info.ver_name">
</li>
</ul>
</div>
<div class="form-group" style="clear: both">
<input type="button" :disabled="goods_name=='' " class="btn btn-primary" value="保存" v-on:click="save()"></div>
</form>
</div>
</template>
</template>
<script type="text/javascript">
var router = new VueRouter({
routes:[
{
path:'/add',
component:{
data(){
return {
goods_id:'',
goods_name:'',
ver_id:'',
ver_name:'',
ver_introduction:'',
color_name:'',
goods_price:'',
ver_list1:[],
color_list:[],
$parent: this.$parent
}
},
methods:{
save:function () {
debugger
var goods_name = this.goods_name
var ver_list = this.ver_list1
var n=ver_list.length
this.$parent.goods_list.push({
goods_name
})
for(var i=0;n>0;i++){
console.log(ver_list[i].ver_name)
this.$parent.ver_list.push({
ver_name:ver_list[i].ver_name
})
n--
}
localStorage.setItem('goods_list',JSON.stringify(this.$parent.goods_list))
localStorage.setItem('ver_list',JSON.stringify(this.$parent.ver_list))
this.$router.push('/')
},
add_version:function () {
// 添加版本方法
this.ver_list1.push({
ver_name:'',
})
},
},
template:'#add_box'
}
},
{
path:'/',
component:{
template:'#list_box',
}
}
]
})
new Vue({
router,
el:".container",
data:{
goods_list:[],
ver_list:[]
},
created(){
debugger
this.goods_list = JSON.parse(localStorage.getItem('goods_list'))
if (this.goods_list==null) {
this.goods_list = []
}
this.ver_list = JSON.parse(localStorage.getItem('ver_list'))
if (this.ver_list==null) {
this.ver_list = []
}
console.log(this.ver_list)
},
methods:{
}
})
</script>
</body>
</html>
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。