微信小程序数双向数据绑定

老板突然兴起,让我做个小程序,当时我的心情是这样的

不能因为我曾经在群里说过会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的面向对象,好扯啊,慢慢看吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,153评论 25 708
  • 昨天看了一下微信小程序官方文档,总结一下自己学习的个人心得. 首先从官方文档给的框架说起,微信小程序官方文档给出了...
    Mr大大大阅读 47,592评论 9 68
  • WXML WXML(WeiXin Markup Language)是微信的一套标签语言,结合基础组件、事件系统,可...
    许剑锋阅读 7,357评论 3 51
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,085评论 19 139
  • 今日下午,我家俏妞念叨了几天的阳澄湖大闸蟹终于到了,意料之中,她兴奋不已! 养儿方知父母恩,节前给爸妈拍了两份蟹券...
    蓝尘爱俏阅读 285评论 0 0

友情链接更多精彩内容