zoukankan      html  css  js  c++  java
  • 小程序自定义组件中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)
          })  
        }
      }
    
    })
  • 相关阅读:
    Freefilesync-文件夹自动同步
    考研打卡_Day077
    考研打卡_Day076
    考研打卡_Day075
    考研打卡_Day074
    考研打卡_Day073
    考研打卡_Day072
    考研打卡_Day071
    考研打卡_Day070
    考研打卡_Day069
  • 原文地址:https://www.cnblogs.com/duanzhenzhen/p/11304636.html
Copyright © 2011-2022 走看看