Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.JS中的双向数据绑定和计算?_Vue.js - Fatal编程技术网

Vue.JS中的双向数据绑定和计算?

Vue.JS中的双向数据绑定和计算?,vue.js,Vue.js,在Vue.JS中,我有两个输入框,您可以在其中输入值 我想在输入第一个框时更改另一个框中的值,反之亦然。但同时也要做一个计算 我试过使用两个观察者,但似乎坏了 例如: <template> <input v-model="box1"> <input v-model="box2"> </template> <script> watch: { box1: function (val) { this.box2 = val

在Vue.JS中,我有两个输入框,您可以在其中输入值

我想在输入第一个框时更改另一个框中的值,反之亦然。但同时也要做一个计算

我试过使用两个观察者,但似乎坏了

例如:

<template>
  <input v-model="box1">
  <input v-model="box2">
</template>

<script>
watch: {
  box1: function (val) {
    this.box2 = val + 100
  },
  box2: function (val) {
    this.box1 = val - 100
  }
},
</script>

观察:{
框1:功能(val){
this.box2=val+100
},
框2:功能(val){
this.box1=val-100
}
},
当您调整第二个框中的值时,此选项将中断


在Vue中可以做到这一点吗?

一种解决方案是使用方法而不是
监视

<template>
  <input :value="box1" @input="onBox1Input">
  <input :value="box2" @input="onBox2Input">
</template>

<script>
methods: {
  onBox1Input(value) {
    this.box1 = value
    this.box2 = value + 100
  },
  onBox2Input(value) {
    this.box2 = value
    this.box1 = value - 100
  }
}
</script>

方法:{
onBox1Input(值){
this.box1=值
this.box2=值+100
},
Onbox2输入(值){
this.box2=值
this.box1=值-100
}
}

一种解决方案是使用方法而不是
观察

<template>
  <input :value="box1" @input="onBox1Input">
  <input :value="box2" @input="onBox2Input">
</template>

<script>
methods: {
  onBox1Input(value) {
    this.box1 = value
    this.box2 = value + 100
  },
  onBox2Input(value) {
    this.box2 = value
    this.box1 = value - 100
  }
}
</script>

方法:{
onBox1Input(值){
this.box1=值
this.box2=值+100
},
Onbox2输入(值){
this.box2=值
this.box1=值-100
}
}

如果您使用
v-model.number
,它可能会起作用,但我仍然认为更好。如果您使用
v-model.number
,它可能会起作用,但我仍然认为更好。