微信小程式之裝逼失敗篇
阿新 • • 發佈:2018-12-25
老闆突然興起,讓我做個小程式,當時我的心情是這樣的
不能因為我曾經在群裡說過會JS就讓我做小程式啊,奴家做不到啊!
轉念一想,人在屋檐下,不得不低頭,只能硬著頭皮上了!
然後我就去小程式官網下了個所謂的IDE,看了一遍文件,看著還行,畢竟iOS出身,一看就懂!
然後過了一個星期,老闆誇我學得快,然後就沒有然後嘞。。。說好的做小程式呢,UI呢!設計呢!
正當我覺得小程式可以放下的時候,一個群裡有人問怎麼動態新增刪除Input,就像這樣
上午問一遍,下午問一遍,我看不下去了,就裝了一個逼,實在是後悔啊
沒辦法,自己裝的逼,跪著也要裝完,只能開啟坑爹的IDE,開始寫demo
最開始我以為用wx:for迴圈就可以啦,誰知道寫完新增倒是新增的很6,但是刪除的時候只能刪除最後一個,最後想到了用value屬性繫結data,輸入資料流向data,實現雙向邦定。。。
index.wxml
<view class="">
<!--<block wx:for="{{divList}}" wx:key="*this">-->
<view class="contentView" wx:for="{{divList}}" >
<view class="del" bindtap="del" data-index="{{index}}">刪除</view>
<input data-index="{{index}}" class="conteneInput" placeholder ="測試陣列新增和刪除" bindinput="bindKeyInput" value="{{item.content}}"/>
</view>
<!--</block>-->
<view class="add" bindtap="add">新增</view>
</view>
index.wxss
.add{
width: 100%;
height: 30px;
text-align: center;
background-color: rebeccapurple;
margin-top: 10px;
line-height : 30px;
}
.del{
width: 50px;
height: 50px;
background-color: orangered;
}
.conteneInput{
float: left;
}
.contentView{
display: flex;
margin: 10px;
}
index.js
//index.js
//獲取應用例項
var app = getApp()
Page({
data: {
divList:[]
},
onLoad: function () {
},
add:function(e){
var arr = this.data.divList;
var obj = {
content:''
}
arr.push(obj)
this.setData({
divList: arr
})
},
del:function(e){
var arr = this.data.divList;
var index = e.currentTarget.dataset.index
arr.splice(index,1)
this.setData({
divList: arr
})
},
bindKeyInput: function(e) {
console.log(e)
var arr = this.data.divList
var obj = arr[e.currentTarget.dataset.index]
obj.content = e.detail.value
this.setData({
divList:arr
})
}
})
實現的效果是這樣的
最後小夥兒按照我的程式碼也實現了他想要的效果,總算裝逼成功,不辱使命!
雖然小程式帶了一個小字,但是寫起來也很費力,JS基礎也看了一遍,但是JS的高階函式搞得我頭暈,還有JS的面向物件,好扯啊,慢慢看吧!