javascript - VueJS、LoDash 反跳监视整个表单

标签 javascript vue.js lodash

我正在尝试让 LoDash debounce 工作,以便在用户停止在表单上打字时触发事件。

类似于this guide的东西

除非我想将其应用于整个表单/模型属性。

目前,反跳从未触发。

Example JS Fiddle

JS

    new Vue({
  el: "#app",
  data() {
    return {
      form: {
        user: {
          name: "Bob",
          email: "Test@test.com"
        }
      },
      isTyping: false,
      isLoading: false,
    }
  },
  watch: {
    form: _.debounce(function() {
      this.isTyping = false;
    }, 1000),
    isTyping: function(value) {
      if (!value) {
        console.log("stopped typing")
      }
    }
  },
  methods: {

  }
})

HTML

<div id="app" class="container-fluid">
  <div class="row">
    <div class="col-md-3">
      <label class="control-label">Name</label>
      <input type="text" class="form-control" @input="isTyping = true" v-model="form.user.name" placeholder="Type your keyword">
       <label class="control-label">Email</label>
      <input type="text" class="form-control" @input="isTyping = true" v-model="form.user.email" placeholder="Type your Email">
    </div>
  </div>

</div>

最佳答案

你需要让你的观察者 deep

   form: {
      handler: _.debounce(function() {
        this.isTyping = false;
      }, 1000),
      deep: true
    },

Updated fiddle

关于javascript - VueJS、LoDash 反跳监视整个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54465229/

相关文章:

javascript - 无论 HTML 中设置了 "value",我们是否都应该在 JS 中初始化变量?

javascript - 单击时隐藏 HighCharts 中的点

javascript - 下划线/Lo-Dash _.each 不返回数组

javascript - 缩小并扁平化一个物体的物体

vue.js - Nuxt : Set layout in page. vue 基于数据动态

javascript - 如何使用 Vue 搜索排序列表中的多个属性

javascript - 创建一个原型(prototype)只是为了保存内部对象属性可以吗?

javascript - 在可伸缩性、性能和处理复杂 html 图形方面最好的 javascript 模板引擎是什么?

javascript - Vue.js - 在悬停时添加删除按钮并在按下按钮时将其删除

node.js - 运行 npm install 命令时 Jenkins 构建步骤失败