<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
問題描述:在引數傳遞時時候Map鍵值對key:value的形式進行傳參。
1、date資料區定義宣告map變數和中間資料變數temp:
data(){ return{ //其他程式碼 map:'', temp:[] } },
2、methods方法區介面傳值:宣告map為Map變數,接收介面傳過來的key資料生成表單項資料項:
this.map=new Map()
即:
//點選待辦任務,去處理待辦任務 填寫待辦表單 goDealTaskShow(index){ this.$fetchPost('你的介面',{taskID:this.taskForm.taskId}).then(res=>{ this.getTaskForm = res.data; this.map = new Map() for (var i=0;i<this.getTaskForm.length;i++){ this.map.set(this.getTaskForm[i].fieldName,''); } console.log(this.getTaskForm,'集合集合') console.log(this.map,'map集合') }) this.taskNameList.push(this.$refs.taskName[index].innerHTML) this.taskIdList.push(this.$refs.taskId[index].innerHTML) },
3、form表單資料繫結,且根據for迴圈index值用temp資料進行資料繫結。
<el-form-item v-for="(item,index) in map" :key="item[0]" :label="item[0]"> <div class="dealTaskItem"> <el-input @input="updateForce($event)" v-model ="temp[index]" class="dateTaskCss" placeholder="請輸入" clearable @change="mapUpdate(item[0],index)"></el-input> </div> </el-form-item>
4、mapUpdate方法將temp陣列接收的值對Map進行key:value傳值:
mapUpdate(key,index){ this.map.set(key,this.temp[index]); console.log(key) console.log(this.map) }
5、mapToJson方法對map進行json資料格式轉換:
mapToJson(map) { return JSON.stringify(this.strMapToObj(map)); },
6、map資料賦值給介面引數,進行傳參:
saveDealTaskForm(){ this.$forceUpdate(); this.saveTaskForm.result=this.mapToJson(this.map); console.log( this.mapToJson(this.map),' mapToJson(this.map)') this.$fetchPost('你的介面',this.saveTaskForm,'json').then(res=>{ if (res.code===0){ this.$message({ message:res.data, type:'success', }) this.initEvents();//資料重新整理 }else{ this.$message.error("處理失敗!") } }) this.dealTaskVisible = false;//關閉表單彈窗 },
搞定,嘻嘻!
Map在vue中的使用方法:
html:遍歷的時候要遍歷兩遍
<template> <div class="course"> <div class=""> <div class="pt0 ctRow"> <ul class="ctNavbar"> <li class="ctA" v-for="(item,index) in courseTypeList" :key="item.id" @click="selectedCur(index)" :class="{ cur:cur == index }" :data-id="item.id" > {{item.courseTypeName}} </li> </ul> </div> <!--Map遍歷兩遍 --> <div class="ctRow date_navbar"> <a href="javascript:;" v-for="(item,index) in dateMap" :key="index" @click="dataCur(index)" :class="{ cur:active == index }" > <span v-for="data in item">{{data}}</span> </a> </div> </div> </div> </template>
js:
data(){ return{ cur: "0", active:"0", courseTypeList: [], dateMap:{}, } }, mounted(){ // 後端返回json var jsonStr ={ "code": 0, "msg": "success", "data": { "courseTypeList": [ { "id": "16", "courseTypeName": "小一班" }, { "id": "15", "courseTypeName": "中一班" }, { "id": "14", "courseTypeName": "大一班" } ], "dateKeys": [ "二·11.26", "三·11.27", "四·11.28", "五·11.29", "六·11.30", "日·12.01", "一·12.02" ] } } // 遍歷班級型別 for (var i = 0; i < jsonStr.data.courseTypeList.length; i++) { var courseTypeList = jsonStr.data.courseTypeList[i]; this.courseTypeList.push(courseTypeList) } // 遍歷日期 //初始化Map物件 var dateMap = new Map(); for (var i = 0; i < jsonStr.data.dateKeys.length; i++) { var data = jsonStr.data.dateKeys[i]; //用split連在一起的字串切割 "三·11.27" //使用set新增鍵值範例:m.set('小紅', 30); dateMap.set(data.split("·")[0], data.split("·")[1]); } this.dateMap = dateMap; },
css:
.ctNavbar{ display: flex; align-items: center; justify-content: space-between; text-align: center; .ctA{ padding: 10px 0; color: #202020; font-size: 1.5rem !important; border-bottom: 2px solid transparent; width: 33%; &.cur{ color: #BA0932; border-bottom: 2px solid #BA0932; } } } .date_navbar { width: 100%; display: flex; justify-content: space-between; align-items: center; a { width: 32px; -webkit-box-flex: 1; display: flex; justify-content: space-between; align-items: center; flex-direction: column; font-size: 9px; color: #6C6C6C; padding: 2px 5px; flex: 1; span { display: block; -webkit-box-flex: 1; } &.cur { background: #BA0932; color: #fff; border-radius: 16px; } } }
到此這篇關於Vue中如何使用Map鍵值對傳參的文章就介紹到這了,更多相關Vue用Map鍵值對傳參內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45