vue里面的v-model,渲染的问题

发布于 2022-09-11 17:29:05 字数 1408 浏览 10 评论 0

有一个业务场景,就是我有一个表单 表单字段都是通过 form数据对象进行双向数据绑定的,担负项目的新增和项目的编辑修改的功能

【场景】 打开编辑按钮,表单从接口获取到值,并把内容赋值到页面上,打开新增按钮,按道理就是需要将表单清空

问题来了,就是我在打开表单的时候,直接将表单双向绑定的对象直接赋值一个空对象,页面清空了,但是我有个疑惑就是页面上面通过v-model绑定到的字段,为什么不在我把表单对象赋值为空对象而报错??

 <el-form label-width='40px'><el-form-item label="标题" prop="">
      <el-input size='small' v-model='articleForm.basicTitle'></el-input></el-form-item>
        <el-form-item label="作者" prop="">
                 <el-input size='small' placeholder="请输入图文作者" v-model='articleForm.articleAuthor' >
                    
                 </el-input>
              </el-form-item>
              <el-form-item label="摘要" prop="">
                 <el-input size='small' type='textarea' v-model='articleForm.basicDescription'>
                 </el-input>
              </el-form-item>
           </el-form>

data:{

 articleForm: {
        basicTitle: '', //标题
        articleAuthor: '', //作者
        basicDescription: '', //摘要
        articleContent: '', //正文
  },
  mainArticle: {
    basicPic: '', //主图
    basicTitle: '', //标题
  },

}
open:function(material){

if(material && material.newsId>0){
       // 编辑 伪代码   
 }else{
   // 新增
    this.articleForm = {}
    this.mainArticle = {}
 }

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱桃奶球 2022-09-18 17:29:05

整理下思路,这样的绑定存在的问题。

  1. v-model是双向绑定,当你把对象设为空的时候,v-model相当于给绑定的对象属性赋值,所以并不会报错
  2. 然后就是vue的机制是watch不到新增加的属性变化的,需要使用$set方法设置

我一般项目里面的表单清除都在watch弹窗的时候进行:
图片描述

然后会加一个对应的清除表单的函数:
图片描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文