Javascript Vue-指令绑定不';无法进行元素刷新
我使用vue.js生成表单-所有字段都在javascript对象数组中,其结构如下: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
{
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文件中的属性)时使用。这听起来像是在您的输入上。这听起来像是在您的输入上。