VueJS和LoDash在整个表单上进行反跳监视

时间:2019-01-31 16:37:16

标签: javascript vue.js lodash

我正在尝试让LoDash消除抖动,以在用户停止在表单上键入内容时触发事件。

类似于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>

1 个答案:

答案 0 :(得分:2)

您需要使自己的监视者deep

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

Updated fiddle