小程序自定义组件中observer函数的应用
<!-- 单个数据监听 --> <view>白菜</view> <view>价格:{{price}}</view> <!-- bindinput输入时触发方法 --> <view>数量: <input type="number" bindinput='changee' value="{{num1}}"></input></view> <view>总价:{{sum}}</view> <!-- 多个数据监听 --> <view class='sum2'> <input class='inlineInput' type="number" bindinput='changeNum2' value="{{num2}}"></input>+ <input class='inlineInput' type="number" bindinput='changeNum3' value="{{num3}}"></input>= <text>{{sum2}}</text> </view>
js
// components/date/index.js Component({ /** * 组件的属性列表 */ properties: { }, /** * 组件的初始数据 */ data: { num1: 0, sum:0, price: 2, num2: 0, num3: 0, sum2: 0 }, /** * 组件的方法列表 */ methods: { changee(e){ // console.log(e); let num1 = e.detail.value; this.setData({ num1: num1 }) }, changeNum2(e){ let num2 = e.detail.value; this.setData({ num2: num2 }) }, changeNum3(e) { let num3 = e.detail.value; this.setData({ num3: num3 }) } }, observers: { //观察者:属性监听 //单个监听 'num1'(num1) { this.setData({ sum: num1*this.data.price }) }, //多个监听 'num2,num3'(num2,num3){ num2 == '' && (num2 = 0); num3 == '' && (num3 = 0); this.setData({ sum2: parseFloat(num2) + parseFloat(num3) }) } } })