小程序request接口的封裝(本質上是對request回調函數再次回調)
module.exports.getData = function (url) {
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var method = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'POST';
var header = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' };
return new Promise(function (resolve, reject) {
wx.request({
url: url,
data: data,
method: method,
header: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' },
success: function (res) {
resolve(res)
},
fail: function (res) {
reject(res)
}
})
})
}
調用方法
var common = require("../../common/common.js")
common.getData(postUrl)
.then(function(data){
this.setData({
//....
});
console.log(data);
});
微信小程序有個屬性hover-class=’active’,是指當點擊列表元素時當按下鼠標左鍵會顯示active樣式,但是鼠標離開樣式就會復原.可以參考以下解決方案,直接上代碼: wxml:
<view class="tags">
<view class="tag-title">標簽</view>
<view class="tag-box">
<view wx:for="{{tags}}" wx:key="id" wx:for-index="i">
<view class="tags-item {{currentItem==item.id?'active-tag':''}}" data-id="{{item.id}}" bindtap="tagChoose">{{item.name}}</view>
</view>
</view>
</view>
js文件:
tagChoose:function(options){
var that = this
var id = options.currentTarget.dataset.id;
console.log(id)
//設置當前樣式
that.setData({
'currentItem':id
})
}
核心點:class=”tags-item {{dateCurrent==item.id?’active-tag’:”}}”模板文件中使用三元運算符,通過dateCurrent指定當前item的id