Javascript Vue-指令绑定不';无法进行元素刷新

Javascript Vue-指令绑定不';无法进行元素刷新,javascript,vue.js,binding,directive,input-mask,Javascript,Vue.js,Binding,Directive,Input Mask,我使用vue.js生成表单-所有字段都在javascript对象数组中,其结构如下: { type: "input", mask: "date", default: "2018/04/14" }, { type: "input", mask: "currency", default: "0" } 用户可以使用导航跳转到任何问题。当用户单击导航链接时,我将我的“currentQuestion”对象更改为“selected by user”-对象在J

我使用vue.js生成表单-所有字段都在javascript对象数组中,其结构如下:

{
    type: "input",
    mask: "date",
    default: "2018/04/14"
},
{
    type: "input",
    mask: "currency",
    default: "0"
}
用户可以使用导航跳转到任何问题。当用户单击导航链接时,我将我的“currentQuestion”对象更改为“selected by user”-对象在JS中通过引用传递,所以如果用户修改了某些内容,我的“central”数组中就会有结果。没关系

我还使用inputmask屏蔽具有非常简单指令的输入字段:

import Vue from 'vue'
import Inputmask from 'inputmask'

Vue.directive('mask', {
  bind (el, binding) {
    if (binding.value) {
      Inputmask(binding.value).mask(el)
    }
  }
})
而且它也很好用。。。但并非总是如此。若用户有一个带有日期掩码的问题,那个么跳转到带有其他掩码的问题并返回-日期将不起作用。用户必须在没有掩码的情况下进入问题,然后返回,它将再次工作

调试后,我知道该元素已刷新,但vue未将正确的数据(来自currentQuestion)绑定到输入:

methods: {
  getInputMask () {
    return this.currentQuestion.mask || null
  },
使用方法:

<input type="text"
    :name="currentQuestion.identifier"
    v-mask="getInputMask()"
    v-model="currentQuestion.value"
    @keyup="afterModifyInput"
>


因此,我不知道如何解决这个问题

您需要为每个元素设置一个id,并使用v-bind:key类似以下内容:

<input type="text"
    v-bind:key="YOUR_ELEMENT.id"
    v-mask="getInputMask()"
    v-model="currentQuestion.value"
    @keyup="afterModifyInput"
>

好的,v-bind在您不知道要呈现的确切内容(如请求或JSON文件中的属性)时使用。

您需要为每个元素设置一个id,并使用v-bind:key类似以下内容:

<input type="text"
    v-bind:key="YOUR_ELEMENT.id"
    v-mask="getInputMask()"
    v-model="currentQuestion.value"
    @keyup="afterModifyInput"
>
嗯,v-bind在您不知道要呈现的确切内容(如请求或JSON文件中的属性)时使用。

这听起来像是在您的输入上。这听起来像是在您的输入上。