您的位置:首页 > 移动开发 > 微信开发

微信小程序开发过程中总结的注意事项

2017-03-23 17:02 731 查看

1、picker从后台动态取值

 <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">

    <view class="picker">

      区域:{{objectArray[index].name}}

    </view>

  </picker>

 array: ['环翠区', '高区', '经区', '其他'],

 objectArray: [

      {

        id: 12,

        name: '环翠区'

      },

      {

        id: 13,

        name: '高区'

      },

      {

        id: 14,

        name: '经区'

      },

      {

        id: 15,

        name: '其他'

      }

    ],

  },

  bindPickerChange: function(e) {

    console.log('picker发送选择改变,携带值为', tobjectArray[e.detail.value]) //这个值只是角标的顺序值

  console.log('picker发送选择改变,携带值为', this.data. objectArray[e.detail.value].id) //这样才能取到真正的ID值

}

2、wx.request从后台取值成功不能用 that.setData({.......})会报错"this.setData is not a function;at api request success callback function"

必须写成
var
 
that=
this
;   


完整例子:

data: {
logs:[]
},
onLoad:function(){
this.getdata();

}
getdata:function(){//定义函数名称
var that=this;   // 这个地方非常重要,重置data{}里数据时候setData方法的this应为以及函数的this, 如果在下方的sucess直接写this就变成了wx.request()的this了
wx.request({
url:'http://www.phonegap100.com/appapi.php?a=getPortalCate',//请求地址
data:{//发送给后台的数据
name:"bella",
age:20
},
header:{//请求头
"Content-Type":"applciation/json"
},
method:"GET",//get为默认方法/POST
success:function(res){
console.log(res.data);//res.data相当于ajax里面的data,为后台返回的数据
      that.setData({//如果在sucess直接写this就变成了wx.request()的this了.必须为getdata函数的this,不然无法重置调用函数

      logs:res.data.result

          })

},
fail:function(err){},//请求失败
complete:function(){}//请求完成后执行的函数
})
},
  wxml页面:

<view  wx:for="{{logs}}" wx:for-item="value">
{{value.catname}}
</view>

 3、界面A.wxml参数值传递

<view class="nav_top_items" bindtap="switchTab " data-id="{{item.id}}">
逻辑处理A.js里发送
// 跳转至详情页
navigateDetail: function(e){
wx.navigateTo({
url:'../detail/detail?artype=' + e.currentTarget.dataset.id

})
},
逻辑B.js接收参数值
onLoad: function (options) {
this.setData({
id:options.id
})
},

4、小程序参数传值

现在已知传递参数的方法只找到三种,先总结下:

1.APP.js

我把常用且不会更改的参数放在APP.js的data里面了.在各个page中都可以拿到var app = getApp();

app上就可以拿到存在data中的参数.

2. wx.navigateTo({})中URL携带参数

demo中已经写出:

 wx.navigateTo({

      url: "../newpage/newpage?infofromindex=" + this.data.infofromindex,

  });

传值:在navigator的属性url后拼接?id(参数名字)=要传递的值 (如果多个参数用&分开 &name=value&.......)

页面间传递参数的笔记

3.wx.setStorage(OBJECT) 数据缓存

微信开发文档中的数据缓存方法:

①存储数据

 try {

      wx.setStorageSync('infofrominput', this.data.infofrominput)

    } catch (e) {

 }

②获取数据

  //获取

        wx.getStorage({

            key: 'infofrominput',

            success: function (res) {

                _this.setData({

                    infofromstorage: res.data,

                })

            }

        })

5、从一个JS引用另一个JS中的方法

先在当前JS中引用

var fileData = require('../../utils/data.js')

被引用的js需要暴露接口才可以被引用到,不然会报{{page}}错误

/*

 * 对外暴露接口

 */ 

module.exports = {

  getBannerData : getBannerData,

  getpockrooms:getpockrooms

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: