|
熱騰騰的第二篇來啦~沒錯(cuò)就是第二篇 名字神馬的就叫第二篇 才不是因?yàn)槲蚁氩怀鰜斫猩赌?/p> 在上一篇ETL小白教學(xué)第一篇---頁面跳轉(zhuǎn)、傳值,咱們學(xué)習(xí)了兩個(gè)頁面的跳轉(zhuǎn)和傳死值。但是呢,在實(shí)際應(yīng)用中,是較少傳死值的,所以本篇學(xué)習(xí)如何動(dòng)態(tài)傳值。 思考:A頁面到B頁面的動(dòng)態(tài)傳值需要什么條件? 1、首先,要輸入傳輸?shù)膎ame和value,所以我們需要->輸入框 2、其次,用按鈕點(diǎn)擊跳轉(zhuǎn),所以我們需要->按鈕 所以第二篇的教學(xué)內(nèi)容如下一、了解輸入框和按鈕插件 二、了解數(shù)據(jù)類型 三、學(xué)會(huì)對(duì)js里面的data做操作 0、添加注釋wxml頁面的注釋用 js文件的注釋用 //注釋一行 / 注釋多行 */ wxss 文件的注釋用 //
加個(gè)騷操作 在js 和 wxml 中 按 ctrl+/ 1、了解輸入框文檔傳送門》傳送門 注重點(diǎn)
1.1、輸入框的提示 placeholder
1.2、輸入框的初始值 value
1.3、輸入框的類型 type
1.4、輸入框觸發(fā)的事件
1.4.1、輸入時(shí)觸發(fā)事件 bindinput
1.4.2、聚焦時(shí)觸發(fā)事件 bindfocus
1.4.3、失去焦點(diǎn)時(shí)觸發(fā)事件 bindblur
1.4.4、點(diǎn)擊完成按鈕時(shí)觸發(fā)事件 bindconfirm
tip 輸入框是沒有邊框的,我們要給它邊框 邊框的wxss代碼
[AppleScript] 純文本查看 復(fù)制代碼
.border_black {
border: 1rpx solid black; margin: 20rpx 20rpx;
}
wxml代碼 [AppleScript] 純文本查看 復(fù)制代碼 <input class="border_black" placeholder="輸入框的提示"/> <input class="border_black" value="輸入框的初始值"/>
效果圖如下 事件方面的wxml代碼 [AppleScript] 純文本查看 復(fù)制代碼 <input class="border_black" bindinput="input" bindfocus="focus" bindblur="blur" bindconfirm="confirm" placeholder="輸入框的提示"/> js代碼
[AppleScript] 純文本查看 復(fù)制代碼
input: function (e) {
console.log("我是輸入時(shí)觸發(fā)事件")
},
focus: function (e) {
console.log("我是聚焦時(shí)觸發(fā)事件")
},
blur: function (e) {
console.log("我是失去焦點(diǎn)時(shí)觸發(fā)事件")
},
confirm: function (e) {
console.log("我是點(diǎn)擊完成按鈕時(shí)觸發(fā)事件")
}
運(yùn)行的效果,需要各位童鞋自己進(jìn)行運(yùn)行測(cè)試了。順便說一句,點(diǎn)擊完成按鈕時(shí)觸發(fā)事件是在輸入框里面敲回車鍵才會(huì)執(zhí)行的。 2、了解按鈕文檔傳送門》傳送門 我在按鈕方面主要用于跳轉(zhuǎn)頁面和給按鈕點(diǎn)擊事件,所以不詳說了 3、了解小程序的數(shù)據(jù)類型
3.1、字符、數(shù)字等常見類型
3.1.1 字符 var string = "11"
3.1.2 數(shù)字 var num = 1
3.2、數(shù)組、對(duì)象
3.2.1 數(shù)組 var sz = ["1","2","3","4","5","6"]
3.2.2 對(duì)象 var dx = {"name":"ETL","age":"22","sex":"BOY"}
3.3、數(shù)組對(duì)象或?qū)ο髷?shù)組
3.3.1 數(shù)組對(duì)象 var szdx= [{"":"","":""},{"":"","":""}]
3.3.2 對(duì)象數(shù)組 var zifu = {["","","",""]}
4、對(duì)js的data做操作
4.1 了解data
data是當(dāng)前js文件的數(shù)據(jù)存儲(chǔ),也就是說在同名的wxml和js中靠data來進(jìn)行傳輸數(shù)據(jù)
4.2 data的初始值
js代碼
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
num:1
},
這樣就初始化num的值為1
4.3 data的取值
在js中 用this.data.num 取data里面num的數(shù)據(jù)
在wxml中 用 {{num}} 取data里面num的數(shù)據(jù)
4.4 data的賦值
只能在js文件中對(duì)data里面的數(shù)據(jù)進(jìn)行賦值
賦值方法
this.setData({
num:2
})
這樣就可以對(duì)data里面的num進(jìn)行賦值了,注意,setData是會(huì)刷新頁面數(shù)據(jù),也就是說 當(dāng)num默認(rèn)為1的時(shí)候,wxml用{{num}} 展示的數(shù)據(jù)是1,當(dāng)點(diǎn)擊按鈕執(zhí)行事件的時(shí)候,對(duì)num進(jìn)行setData修改成2,那么頁面展示的數(shù)據(jù)會(huì)從1變成2
demo代碼如下
wxml代碼
<view>{{txt}}:{{inputValue}}</view>
<input class="border_black" bindinput="input" bindfocus="focus" bindblur="blur" bindconfirm="confirm" placeholder="輸入框的提示"/>
js data代碼
data: {
txt:"默認(rèn)的數(shù)據(jù)為",
inputValue:"我現(xiàn)在是空的值",
},
js input 事件方法
input: function (e) {
console.log("我是輸入時(shí)觸發(fā)事件")
var value = e.detail.value//取輸入框的值
var txt = "您輸入的值為"
this.setData({
inputValue: value,
txt:txt
})
},
tip: 1、console.log()是打印日志,如果要加上數(shù)據(jù)一起打印 中間用逗號(hào)鏈接起來 不要用加號(hào)鏈接起來 2、微信小程序的數(shù)據(jù)類型我已經(jīng)展示出來了,不會(huì)對(duì)數(shù)據(jù)做操作的童鞋可以看這個(gè)》傳送門 3、學(xué)習(xí)任務(wù):在A頁面用輸入框輸入數(shù)據(jù)hello world 然后 傳到B頁面 在B頁面展示 hello world 4、學(xué)習(xí)提示:頁面帶參數(shù)跳轉(zhuǎn)在第一篇的額外學(xué)習(xí)里面,本篇學(xué)了從輸入框里面取值和賦值的方法,唯一的問題就是不會(huì)在B頁面取值,這是問題嗎?當(dāng)然不是,請(qǐng)看->傳送門4、this.setData 是在部分的條件下無法使用的,比如發(fā)起request請(qǐng)求的時(shí)候,會(huì)報(bào)錯(cuò) this.setData is not a function這個(gè)錯(cuò)誤,錯(cuò)誤的原因是:this不再是指向這個(gè)js文件了,而是指向request請(qǐng)求,所以setData is not a function ,解決辦法也很簡(jiǎn)單,在request之前把this賦值給that(var that = this) 然后在request中用that.setData就可以解決啦 |