Javascript 如何删除Vue.js中的元素?
我是Vue的新手。我无法在Vue.js Javascript文件中从DOM中删除项目。 我成功地发出了一个ajax post请求,它从我的数据库中删除了一条特定的记录 一旦它被删除,我需要将它从DOM中删除,这样它就不需要重新加载同一个页面就无法正常工作-我想你知道我的意思 我可以在jQuery中实现,但我想知道在Vue.js中应该如何实现 以下是我的代码部分:Javascript 如何删除Vue.js中的元素?,javascript,jquery,ajax,vue.js,vue-resource,Javascript,Jquery,Ajax,Vue.js,Vue Resource,我是Vue的新手。我无法在Vue.js Javascript文件中从DOM中删除项目。 我成功地发出了一个ajax post请求,它从我的数据库中删除了一条特定的记录 一旦它被删除,我需要将它从DOM中删除,这样它就不需要重新加载同一个页面就无法正常工作-我想你知道我的意思 我可以在jQuery中实现,但我想知道在Vue.js中应该如何实现 以下是我的代码部分: // SOME CODE BEFORE ... onSubmit: function(e){ e.preventDefaul
// SOME CODE BEFORE ...
onSubmit: function(e){
e.preventDefault();
$tablerow = this.el.parentNode.parentNode;
// Assign a correct submit request type and url
this.vm
.$http[this.getRequestType()](this.el.action)
.then(this.onComplete.bind(this))
.catch(this.onError.bind(this))
;
},
onComplete: function(){
// Remove the item from a DOM <<< I NEED TO REMOVE PARENT <tr/> ELEMENT
$(this.el).closest('tr').fadeOut(300, function(){
this.remove();
});
// If complete message exists, use it as a feedback
if(this.params.complete){
alert(this.params.complete);
}
},
// SOME CODE AFTER ...
//之前的一些代码。。。
提交人:函数(e){
e、 预防默认值();
$tablerow=this.el.parentNode.parentNode;
//分配正确的提交请求类型和url
这个是.vm
.$http[this.getRequestType()](this.el.action)
.then(this.onComplete.bind(this))
.catch(这个.onError.bind(这个))
;
},
onComplete:function(){
//从DOM中删除项通常情况下,您将在存储在数组中的表行中显示一个用v-for显示的项列表。在ajax调用后,您可以使用此.items.$Remove(item)删除此项,它将自动从DOM中显示的位置删除
由于您没有显示模板,我将尝试重新创建一个类似的场景,我认为您正在尝试这样做
data: function(){
return {
items: ['item1','item2','item3']
}
},
methods: {
remove: function(item){
ajaxCall.then(function(){
this.items.$remove(item);//will remove the <tr> from the DOM
});
}
}
data:function(){
返回{
项目:['item1'、'item2'、'item3']
}
},
方法:{
删除:功能(项目){
然后(函数(){
this.items.$remove(item);//将从DOM中删除
});
}
}
您的模板可以是
<tbody>
<tr v-for="item in items" v-on:click="remove(item)">{{ item }}</tr>
</tbody>
{{item}}
您已经在使用jQuery了,为什么不继续使用它呢?Vue.js从技术上讲是一个Javascript文件,因此您当前使用的.remove()
是Javascript容量。但是,如果您要使用$(this)。remove()
将使用.remove()
在函数的jQuery意义上。另外,应该注意的是,jQuery也是围绕JavascriptYeah构建的,但正如我所提到的,我想知道如何在Vue.js中实现它。为了性能,Vue和jQuery之间有什么更好的地方?很抱歉之前没有提及,但我以前就是这样做的。因此,据我所知,没有w如果数据
中未声明项数组
,可以在Vue中执行此操作,对吗?您应该使用自定义指令进行此调用并删除自身(DOM元素)在ajax调用之后,v-for
指令在这里发挥了神奇的作用。这些
元素的显示取决于数据中的项目。因此,如果删除项目,则意味着删除tr
元素。如果使用相同的$remove
vue方法,则只会从数据中删除元素,但是v-for
指令的绑定将其与tr
元素同步