vue.js输入值的双向计算

时间:2018-11-22 19:03:19

标签: vue.js

是否可以对vue.js中的输入进行双向计算?我的数据以英寸为单位,并且必须以英寸为单位。我想在输入框中将数据转换为其他单位,并且在用户输入一些值后必须将其转换回英寸。

<input :value="someCrazyBidirectionalCalculation(dataInInches)">

后续问题:

我按照指南在vue.js v2中进行了双向过滤

<v-unit-input label="Height" v-model="parameters.height"></v-unit-input>


Vue.component('v-unit-input', {
    template:
    '<v-text-field ref="input" :label="label" type="number" suffix="mm" :value="value" @input="toInch($event.target.value)" @blur="toMm"></v-text-field>',
    props: {
        value: {
            type: Number,
            default: 0
        },
        label: {
            type: String,
            default: ''
        }
    },
    mounted: function () {
        this.toMm()
    },
    methods: {
        toInch: function (value) {
            this.$emit('input', this.value / 25.4)
        },
        toMm: function () {
            this.$refs.input.value = this.value * 25.4
        },
    }
})

将数据从后端发送到输入时,它确实起作用,但是更改输入会出现此错误:

[Vue警告]:事件处理程序中“输入”错误:“ TypeError:无法读取未定义的属性'value'”

编辑2:

似乎$ event.target.value是问题所在。我的值存储在$ event中。 来自后端的数据从英寸转换为毫米,当输入以毫米为单位的数据时,它转换回英寸,但是当我按数字时,它也以英寸显示。可以仅以毫米显示吗?

2 个答案:

答案 0 :(得分:0)

我建议您使用过滤器,但不要在相同的输入中使用,也许您可​​以将结果放在输入之后的英寸上。

<input v-model="number">
<label>{{ number | inches }}</label>

致谢!

答案 1 :(得分:0)

终于可以了。

'Expression
=Fields!AgeGroups.Value

'Format
String

'Operator
=

'Value
16-18