一个前端问题,求解答

2021-04-07 12:39:37 +08:00
 Eyon
有三个输入框,价格 /折扣率 /折后价

折后价=价格 x 折扣率,即输入价格和折扣率可以自动算出折后价。

重点来了,我想同时实现 输入折后价,可以算出折扣率,也就是
折扣率=折后价 /价格,

这个应该怎么实现,使用 vuejs+elementui

1047 次点击
所在节点    问与答
5 条回复
TMaize
2021-04-07 12:48:27 +08:00
vmodel 用计算属性,计算属性写 get set 去操作 data 里的临时数据就行了
Eyon
2021-04-07 12:52:40 +08:00
@TMaize 愿闻其详,或者你测试过确实可以用这种解决方案。
TMaize
2021-04-07 13:06:16 +08:00
你这是空手套代码呀
<template>
<div id="app">
<input type="text" v-model="a" />
<input type="text" v-model="b" />
<input type="text" v-model="c" />
</div>
</template>

<script>
export default {
data() {
return {
a: 0,
b: 0,
};
},
computed: {
c: {
get() {
return Number(this.a) + Number(this.b);
},
set(v) {
this.b = Number(v) - Number(this.a);
},
},
},
};
</script>
Eyon
2021-04-07 13:15:47 +08:00
@TMaize 大谢.....

一模一样的代码写出来了....只差一句

this.b = Number(v) -Number(this.a);

然后在这个时候 c 始终输入不进去,也删除不了原来计算的值,就以为不行了,所以才上来提问的。

完全是我想多了。。
Eyon
2021-04-07 17:44:44 +08:00
@TMaize

借自己楼再问一下:

如果有若干行相同的 input (当然值不同),计算属性就不能用了(原则上计算属性不能传参),还有什么思路呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/768675

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX