微信小程序-开发时遇到的问题-问题汇总(2)

25、 转义字符必须在text中使用,并且decode默认是false,设置为true才能生效

<text decode='true '>></text>

26、时间戳 转换为 日期格式

Index.js:

etime:utils.formatTimeTwo(data.data.etime,'Y-M-D')

Until.js:

function formatTimeStamp(number, format) {

 

  var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];

  var returnArr = [];

 

  var date = new Date(number * 1000);

  returnArr.push(date.getFullYear());

  returnArr.push(formatNumber(date.getMonth() + 1));

  returnArr.push(formatNumber(date.getDate()));

 

  returnArr.push(formatNumber(date.getHours()));

  returnArr.push(formatNumber(date.getMinutes()));

  returnArr.push(formatNumber(date.getSeconds()));

 

  for (var i in returnArr) {

      format = format.replace(formateArr[i], returnArr[i]);

  }

  return format;

}

 

module.exports = {

  formatTimeStamp,//时间戳转换为 时间格式

}

27、日期格式 转换为 时间戳

Index.js:

etime:utils.formatTime(data.data.etime)

 

Until.js:

const formatTime = date => {

  const year = date.getFullYear()

  const month = date.getMonth() + 1

  const day = date.getDate()

  const hour = date.getHours()

  const minute = date.getMinutes()

  const second = date.getSeconds()

 

  return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`

}

 

const formatNumber = n => {

  n = n.toString()

  return n[1] ? n : `0${n}`

}

 

module.exports = {

  formatTime,//时间格式转换为时间戳

}

 

28、微信登录流程

29input 内容获取及修改

Index.wxml:

<input type="text" maxlength="10" bindinput='getNameValue' value="{{nickname}}" placeholder="请输入姓名"/>

Index.js:

  getNameValue:function(e){

    this.setData({

      nickname:e.detail.value

    })

  },

    // 昵称

    if(that.data.nickname == "" || that.data.nickname == undefined || that.data.nickname == null){

      wx.showToast({

        title: '姓名不能为空',

        icon: 'none',

        duration: 1000

      })

      return false;

    }

 

 

 

30、小程序 分享好友,调用分享功能

<button open-type='share'>分享好友</button>

Detail.js:

  /**

   * 用户点击右上角分享

   */

  onShareAppMessage: function () {

    let that = this;

    // 获取缓存的 Uid

    var Uid = wx.getStorageSync('Uid');

    that.setData({

      uid:Uid

    })

    console.log('uid:'+that.data.uid);

    return {

      title: '我的保障卡',

      path: '/pages/index/index?otheruid='+that.data.uid,

    }

  },

 

 

31、小程序 修改data 下的 数组 里的某个值

  data: {

    minelist:[

      {

        icon:'../../../images/mine_icon1.png',

        title:'我的积分',

        url:'../integral/integral',

        showHide:true,

      },

      {

        icon:'../../../images/mine_icon2.png',

        title:'我的团队',

        url:'../team/team',

        showHide:false,

      },

      {

        icon:'../../../images/mine_icon3.png',

        title:'我的预约',

        url:'../order/order',

        showHide:true,

      },

      {

        icon:'../../../images/mine_icon4.png',

        title:'系统说明',

        url:'../system/system',

        showHide:true,

      }

    ]

  },

      

//minelist就是你js中data中的定义的一个数组变量,[]里面的值代表数组的下标,showHide是你申明的这个数组中的key,拼接在一起,结果就是当前下标的值

      var teamShow = "minelist[" + 1 + "].showHide"; 

      that.setData({

        [teamShow]:true,

      })

      console.log(that.data.minelist);

 

 

 

 

 

 

 

32、小程序 手机号获取

Index.wxml:

<button class='btn-cancle' open-type='getPhoneNumber' bindgetphonenumber="getPhoneNumber">确认</button>

Index.js:

 getPhoneNumber: function (e){

    console.log(e.detail.code);

}

 

 

 

 

 

33、日期弹框调用

 

 

 

 

 

34、textarea 限制文字个数及文字实时变化功能

Wxml:

<textarea name="" id="" cols="30" rows="10" placeholder="请输入内容" bindinput="textTap"></textarea>

Js:

Data:{

    noteMaxLen: 100,//详细内容的字数限制

    currentNoteLen: 0,//输入的字数

},

  textTap:function(e){

    var value = e.detail.value,

    len = parseInt(value.length);

    let that = this;

    this.setData({

      currentNoteLen: len

    });

  }

35、web-view 小程序 跳转 公众号文章,需绑定 业务域名,如果是其他业务域名 需校验文件

跳转链接 不能未 公众号 合集,否则会报错

encodeURIComponent()

encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。

decodeURIComponent()

decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码

News.js:

 

 

 

 

 

Detail.js

 

 

 

 

 

 

 

36、Piker - range    objectArray [{},{},{}]

range-key="{{'name'}}" 需单引号加持

 

 

 

 

 

 

 

37、倒计时:小程序 倒计时

 

index.Wxml:

<view>{{ countDown.day }}天{{ countDown.hour }}时{{ countDown.minute }}分{{ countDown.second }}秒</view>

 

Js:

  data: {

    activityTime: 0,

    countInterval: null,

    countDown: {

      day: '00',

      hour: '00',

      minute: '00',

      second: '00',

    },

  },

  onLoad: function () {

    this.countDownFn(1000000);

  },

  num(num) {

    return num < 10 ? `0${num}` : `${num}`;

  },

  countDownFn(intDiff) {

    let delta = intDiff / 1000;

    this.data.countInterval = setInterval(() => {

      let day = 0;

      let hour = 0;

      let minute = 0;

      let second = 0;

 

      const DMS = 24 * 60 * 60;

      day = this.num(Math.floor(delta / DMS));

 

      const h1 = delta / 3600;

      const h2 = day * 24;

      hour = this.num(Math.floor(h1 - h2));

 

      const m1 = delta / 60;

      const m2 = day * 24 * 60;

      const m3 = hour * 60;

      minute = this.num(Math.floor(m1 - m2 - m3));

 

      const s1 = day * 24 * 3600;

      const s2 = hour * 3600;

      const s3 = minute * 60;

      second = this.num(Math.floor(delta - s1 - s2 - s3));

 

      this.setData({

        countDown : {

          day,

          hour,

          minute,

          second,

        }

      });

 

      delta -= 1;

 

      if (delta < 0) {

        clearInterval(this.data.countInterval);

        this.setData({

          countInterval:null,

          countDown: {

            day: '00',

            hour: '00',

            minute: '00',

            second: '00',

          }

        });

      }

    }, 1000);

  },

 

38、小程序 获取某个元素的高度

在页面渲染完成OnReady回调,获取元素高度时,如果不加定时器,获取的元素的高度还是没渲染完异步数据前的高度。故需要加定时器

index.wxml

    <view class="fixed_top">{{topHei}}</view>

index.js

  data: {

    topHei: '',

  },

  onReady: function () {

    let that = this;

    setTimeout(() => {

      let query = wx.createSelectorQuery();

      query.select('.fixed_top').boundingClientRect(rect=>{

        console.log(rect);

        let topHei = rect.height;

        console.log(topHei);

        that.setData({

          topHei:topHei,

        })

      }).exec();

    }, 300)

  },

 

posted @   雷雷1992  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2017-04-25 js基础总结
2017-04-25 常用css代码
点击右上角即可分享
微信分享提示