简单比较就会抛出错误的结果Vue

时间:2018-11-13 21:48:37

标签: javascript vue.js components vue-component vuetify.js

我在模态中有2个组成部分。

第一个:

              <v-text-field
          label="Limite de faltantes"
          type="number"
          v-model="lim_faltProd"
          ></v-text-field>

第二个:

          <v-text-field
          label="Limite de excedentes"
          type="number"
          v-model="lim_excProd"
          ></v-text-field>

我的组件导出:

export default {
  props: ['nombre', 'precio', 'lim_falt', 'lim_exc', 'id'],
  data () {
    return {
      error: '',
      idProd: this.id,
      nombreProd: this.nombre,
      precioProd: this.precio,
      lim_faltProd: this.lim_falt,
      lim_excProd: this.lim_exc
    }
  },
  watch: {
    nombre () {
      this.nombreProd = this.nombre
    },
    precio () {
      this.precioProd = this.precio
    },
    lim_falt () {
      this.lim_faltProd = this.lim_falt
    },
    lim_exc () {
      this.lim_excProd = this.lim_exc
    },
    id () {
      this.idProd = this.id
    }
}

所以当我尝试做像这样简单的事情

  

this.lim_faltProd> = this.lim_excProd

这太疯狂了。

看看这个,我明白了

  

console.log(this.lim_faltProd)// 20

     

console.log(this.lim_excProd)// 100

     

console.log(this.lim_faltProd> = this.lim_excProd)//正确!!!!



我将显示它:  我要执行的功能:

     async registrarProducto () {
this.error = this.lim_faltProd > this.lim_excProd
}

结果:

enter image description here

1 个答案:

答案 0 :(得分:1)

您正在比较字符串; "20"大于"100",因为"2"大于"1"(第一个字符)。如果要比较数值,请将它们转换为 Number

this.error = Number(this.lim_faltProd) >= Number(this.lim_excProd)

console.log("20" >= "100")

console.log(Number("20") >= Number("100"))