最優(yōu)的 寫法 是 寫個(gè) 過濾器,我們 公司是寫了一個(gè) diff 算法來 判斷什么修改了,只上傳修改的 或者 新增的
你這個(gè) 需求 還是在于 上傳
mylists = mylists.filter(x => !x.ser_ids.tirm() && !x.group.tirm()) 過濾掉沒有的
但是你 只要 第三個(gè)
if (!mylist[2]。user_ids.tirm() && !mylist[2].group.tirm()) {
mylist = mylist.slice(0,2)
}
其實(shí)最好 不要改變 原有的 數(shù)據(jù) 最好的情況是 用 深拷貝 一份新數(shù)據(jù) 對其進(jìn)行操作
因?yàn)?后端如果 錯(cuò)誤,你原有數(shù)據(jù)改變 的情況下 是 無法 再一次 進(jìn)行相同的 操作de
wepy框架不用this.setData()了
后來發(fā)現(xiàn)了async.mapSeries能將多個(gè)任務(wù)的結(jié)果匯集在一起
先獲取到數(shù)據(jù),然后去set進(jìn)series data。你現(xiàn)在這樣寫可能數(shù)據(jù)還沒獲取到就執(zhí)行到顯示echart了。
要保重?cái)?shù)據(jù)先獲取到。
報(bào)錯(cuò)的地方應(yīng)該不是你貼的代碼的地方,查看一下那個(gè)代碼使用了refs
。那個(gè)ref出問題了。
你可以用一個(gè)數(shù)組來存class狀態(tài)。
<button data-index='{{index}}' class='{{index+1==selectedList[index]?"m":""}}' bindtap="changeName"> {{item.data}} </button>
Page({
data: { name: 'lili', selectedList:[], datas: datas.dataa },
changeName: function (e) {
var x = e.currentTarget.dataset.index
this.setData({
['selectedList[' + x + ']']: this.data.selectedList[x]?null:x+1
})
})
實(shí)在不知道是為什么
你打印一下inp1
,inp2
的值就知道為什么了
已經(jīng)解決了,不僅要把數(shù)據(jù)庫字符集換成指定的utf8mb4,數(shù)據(jù)連接的時(shí)候也要設(shè)置chatset為utf8mb4
參考1:mysql npmjs
參考2:博客
加個(gè)window.onload
你這樣寫當(dāng)然也可以,但現(xiàn)在vue最新文檔給的方案是使用dynamic import
把這個(gè)checkbox
跟2個(gè)input
的綁定值放在同一個(gè)對象上不就很容易實(shí)現(xiàn)啦,類似這樣
list: [
{
checked: false,
value1: '',
value2: ''
},
],
然后用這個(gè)list
循環(huán)出 是checkbox 對應(yīng)著兩個(gè)input 輸入框,checkbox
被選中的時(shí)候list
再push
一個(gè)新的
list.push({
checked: false,
value1: '',
value2: ''
})
對象進(jìn)去
你檢查下你調(diào)用時(shí)用戶登錄狀態(tài),如果刷新了沒有使用加密時(shí)的sessionKey會導(dǎo)致調(diào)用失敗,你是否判定了第三方的調(diào)用會回調(diào)參數(shù),默認(rèn)的獲取手機(jī)號是不用驗(yàn)證碼的
參考:
獲取手機(jī)號
wxml
<button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授權(quán)登錄</button>
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">獲取手機(jī) </button>
js
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
canIUse: wx.canIUse('button.open-type.getUserInfo')
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面加載
*/
onLoad: function (options) {
var that = this;
// 查看是否授權(quán)
wx.getSetting({
success: function (res) {
if (res.authSetting['scope.userInfo']) {
// 已經(jīng)授權(quán),可以直接調(diào)用 getUserInfo 獲取頭像昵稱
wx.getUserInfo({
success: function (res) {
//獲取用戶敏感數(shù)據(jù)密文和偏移向量
if (res.userInfo) {
//數(shù)據(jù)庫存儲用戶首次基本信息
wx.request({
url: 'https:/xxxx',
data: {
userid: wx.getStorageSync('userid'),
avatarUrl: res.userInfo.avatarUrl,
city: res.userInfo.city,
country: res.userInfo.country,
gender: res.userInfo.gender,
nickName: res.userInfo.nickName,
province: res.userInfo.province
},
header: {
'content-type': 'application/x-www-form-urlencoded'
},
method: 'POST',
success: function (res) {
//console.log(res);
wx.showToast({
title: '登錄成功',
})
}
})
}
}
})
}
}
})
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
*/
onReady: function () {
},
getPhoneNumber: function (e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
},
}
我順序點(diǎn)擊登錄與收獲手機(jī)
用樓上思想實(shí)現(xiàn)的:
const html = `
<p>文字1
<span style="color: #E36C09;">文字2</span>
<span style="font-size: 20px;">文字3
<span style="font-size: 30px; color: #974806;">文字4</span>
</span>
</p>`;
let div = document.createElement('div');
div.innerHTML = html;
function getData(node, data) {
if (!Array.isArray(data)) {
throw TypeError('data is not Array');
}
if (node.hasChildNodes()) {
node.childNodes.forEach(element => {
if (element.nodeType === 1) { // 元素結(jié)點(diǎn)
getData(element, data); // 遞歸
}
if (element.nodeType === 3) { // 文本結(jié)點(diǎn)
const text = element.nodeValue;
if (!text.match(/^\s*$/g)) { // 非空白字符
const style = element.parentNode.style; // 父節(jié)點(diǎn)樣式
data.push({
text: text.trim(),
color: style.color,
font_size: style.fontSize,
});
}
}
});
}
}
let data = [];
getData(div, data);
console.log(data);
服務(wù)端程序應(yīng)該設(shè)置允許跨域 + 允許攜帶的頭。
你這邊提供了自定義頭部 cross-method,content-type
,如果使用的是 php
:
// 允許所有源訪問
header('Access-Control-Allow-Origin: *');
// 允許攜帶的頭
// Access-Control-Allow-Headers 具體詳情請查看:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
header('Access-Control-Allow-headers: cross-method'); // 由于 content-type 屬于簡單頭部,自動允許,無需提供
你這類情況已經(jīng)很普遍了,移動端placeholder不能垂直居中,主要原因是line-height在移動端確實(shí)不怎么樣,居中效果并不好,改為padding才好了些。但是padding也僅僅是好一點(diǎn),對有些強(qiáng)迫癥的人還是不能忍受。這是我自己處理這個(gè)問題的方法,http://www.cnblogs.com/zjzhom...
一種是框架自帶的longpress事件,一種你可以通過touchstart自己規(guī)定一個(gè)長按的時(shí)間,通過這樣的控制你的黑框出現(xiàn)或消失
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。