鍍金池/ 問(wèn)答/HTML/ vue.js如何刪除未輸入值得部分

vue.js如何刪除未輸入值得部分

如何能做到只發(fā)送輸入的內(nèi)容到后端。現(xiàn)階段寫(xiě)了3個(gè)輸入框,實(shí)際使用的時(shí)候可能只會(huì)輸入其中的2個(gè)值,但是現(xiàn)在因?yàn)槎际菍?xiě)死的,每次都會(huì)發(fā)送3個(gè)框的內(nèi)容,哪怕是空。不知道如何做到選擇性發(fā)送,即只得到有輸入值的json。
我的data部分:

testData:{
    “name”:"test",    
    "mylists":[
        {
            "user_ids":'',
            "group":''
        },
        {
            "user_ids":'',
            "group":''
        },
         {
            "user_ids":'',
            "group":''
        }
      
    ]
    
}

submit代碼:

submit(event){
        event.preventDefault();
       
        let formData = new FormData();
        let testData = JSON.stringify(this.testData);
        formData.append('testData', testData);
  
        axios.post("/", formData
          ,config
          ....

比如只輸入前兩個(gè),卻得到的:

{
    “name”:"test",    
    "mylists":[
        {
            "user_ids":'1',
            "group":'1'
        },
        {
            "user_ids":'1',
            "group":'1'
        },
         {
            "user_ids":'',
            "group":''
        }
      
    ]
    
}

在這種情況下,如何能讓第三行沒(méi)有值的不顯示出來(lái)?

回答
編輯回答
別傷我

最優(yōu)的 寫(xiě)法 是 寫(xiě)個(gè) 過(guò)濾器,我們 公司是寫(xiě)了一個(gè) diff 算法來(lái) 判斷什么修改了,只上傳修改的 或者 新增的
你這個(gè) 需求 還是在于 上傳

mylists = mylists.filter(x => !x.ser_ids.tirm() && !x.group.tirm()) 過(guò)濾掉沒(méi)有的

但是你 只要 第三個(gè)

if (!mylist[2]。user_ids.tirm() && !mylist[2].group.tirm()) {
   mylist = mylist.slice(0,2)
}

其實(shí)最好 不要改變 原有的 數(shù)據(jù) 最好的情況是 用 深拷貝 一份新數(shù)據(jù) 對(duì)其進(jìn)行操作
因?yàn)?后端如果 錯(cuò)誤,你原有數(shù)據(jù)改變 的情況下 是 無(wú)法 再一次 進(jìn)行相同的 操作de

2017年12月28日 12:03
編輯回答
不二心

computed計(jì)算屬性

2018年6月3日 04:40
編輯回答
情皺

這樣子試試

testData
.replace(',{"user_ids":"","group":""}','')
.replace('{"user_ids":"","group":""},','')

最好還是這樣

let testData = {}    
for(let i =0 ; i<this.testData.length ; i++){
    let t = this.testData[i]
    if(!t["user_ids"]&&!t["group"]){
        testData.push(t)
    }
}
let json = JSON.stringify(testData)
2017年6月1日 03:08