<div v-for="(item, index) in dataForm.dynamicItem" :key="index">
<el-row>
<el-col>
<el-button type="text" style="width:85px;" :disabled="!isModify" @click="deleteItem(item, index)">删除特性</el-button>
<el-row>
<el-col span="8">
<el-form-item label="特性" :prop="'dynamicItem.' + index + 'featureNum'">
<el-input size="mini" :disabled="!isModify" v-model="dataForm.featureNum" placeholder="特征" clearable style="width:140px;">
</el-input>
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item label="特性内容" :prop="'dynamicItem.' + index + 'featureContent'">
<el-input size="mini" type="textarea" :disabled="!isModify"
autosize v-model="dataForm.featureContent" placeholder="特征内容" clearable >
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
</div>
addItem () {
this.dataForm.dynamicItem.push({
featureContent: '',
featureNum: ''
deleteItem (item, index) {
因为你这个是保存在内存里的,肯定一刷新就没有了
要用ajax把数据提交到服务器保存
我是用axios把数据提交的,现在就是出现添加提交到了数据库也有数据,删除不行,保存完也还是不行
现在问题就是出在怎么提交成功和数据回显的问题上了
addItem (id) {
this.$nextTick(() => {
this.$refs.addItem.init(id)
})
this.dataForm.dynamicItem.push({
featureContent: '',
featureNum: ''
})
//数据存储
this.$http({
url: this.$http.adornUrl(`/inspection/devicefeature/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'deviceId': this.dataForm.deviceId,
'featureNum': this.dataForm.featureNum,
'featureContent': this.dataForm.featureContent
})
})
},
提交请求现在能提交到数据库,删除不了
deleteItem (item, index) {
this.dataForm.dynamicItem.splice(index,1)
//数据删除
this.$http({
url: this.$http.adornUrl('/inspection/devicefeature/delete'),
method: 'psot',
params: this.$http.adornParams({
'device_id':this.dataForm.deviceId,
'featureContent':this.dataForm.featureContent,
'featureNum':this.dataForm.featureNum
})
}).then(({data}) => {
if(data.status === 'ok'){
this.$message({message:'删除成功',type:success})
}
})
},
,删除不了 到底是什么意思???
正确的业务逻辑应该是 添加和删除 都先发请求给服务器
等服务器返回操作成功之后
再修改前端的界面。
然后再调用 this.dataForm.dynamicItem.push和 this.dataForm.dynamicItem.splice 就行。
添加成功到了数据库,删除不了数据库添加的
我看一下谢谢
请求到不了后端
有没有提示什么错误信息
你用postman看一下能不能发得通
你删除的方法中,传递的参数可能有问题'device_id':this.dataForm.deviceId,我看你添加的方法中是'deviceId': this.dataForm.deviceId,
然后你在后台接收的时候,通过对象接收参数,导致映射不到对应的接口
通不了,那我应该怎么写这个请求呀
this.dataForm.id,this.dataForm.deviceId dataForm这个对象里面是包含两个id?添加删除查询的唯一值不是一致的?
不是参数写错的问题吗,方便的话,加一下我 1571488201.我帮你看下代码
好的
删除不了 看后端代码啊。。
除了楼上说的俩id参数名不一样
还有 你更新的时候用到了下面的参数
'id': this.dataForm.id || undefined,
但是删除的时候 没有这个参数
我觉得删除也应该是根据这个参数删除吧。
删除的参数加上 'id': this.dataForm.id || undefined,
再看看
后端代码没有问题。早就查的不带查了
私聊,2829621014可以就加一下,帮你调试一下
前端传错参数 或者没有传什么参数 丢了参数 后端该报错的
不报错 就算是后端代码的问题
可以
后端代码别的页面同样的接口没有问题
加你了
采纳的话 远程我 给你调试
https://www.cnblogs.com/dlight/p/biwen.html
那给远程先看看呗,怎么加你,最近这两天后台系统出了点问题,刚刚处理好
一个删除操作,应该是给后台一个id就可以实现的,如果你数据传过去了 删除没有成功,就是后端那边的问题,不是前台问题,前台要做的只能是拿到参数然后给后台,后台返回是否成功之后重新刷新页面或者局部更新一下
能给远程看看嘛,我传过id不行
我这回家还要很久呢
啊,那我在想想办法
后端不能调试看看吗?
后端拿别的页面正常 当理由
这个问题就没法解决 了。。。
就算是前端传错参数了 或者丢了参数 那也得是后端告诉前端到底是哪个参数错了 。。
后端都不知道调试了多少次了。不知道就不要说好吗,来是解决问题的
算了 不说了 祝你好运吧。
谢谢