小程序组件开发坑
来源:互联网 发布:笔记本温度检测软件 编辑:程序博客网 时间:2024/05/17 23:27
由于项目需要,做了一个微信小程序组件。功能类似radio,跟我们常用的toggle一样。
由于小程序不能像我们网页一样,通过$(“#id”)这样来设置属性。所以只能通过小程序页面的data来跟页面控件绑定,通过改变data来改变页面控件的属性。
wxml页面代码如下,注意这里标签是template
<template name="toggle"> <button id='{{toggleId}}' bindtap="setA" class="{{toggleAClass}}">{{labelA}}</button> <view style="width:10px;height:10px;display:inline-block;"></view> <button id='{{toggleId}}' bindtap="setB" class="{{toggleBClass}}">{{labelB}}</button> <input style="display:none" type='text' name="{{toggleName}}" value="{{toggleValue}}" /></template>
js代码如下,调用时候,通过构造函数来注册组件
/** * 单选按钮组件 * 2017年10月12日17:58:25 * tdq */function ToggleClass() { //构造函数 function Toggle() { let pages = getCurrentPages() let curPage = pages[pages.length - 1] this.__page = curPage //附加到page上,方便访问 curPage.toggle = this curPage.setData({ '__toggle__.toggleId': "toggle", '__toggle__.toggleAClass': "togglea__class", '__toggle__.toggleBClass': "toggleb__class", '__toggle__.toggleValue': 1, }) curPage.setA = function (e){ var id = e.target.id if(id=='quhuo'){ curPage.setData({ '__quhuo__.toggleAClass': 'toggleb__class', '__quhuo__.toggleBClass': 'togglea__class', '__quhuo__.toggleValue': 0, }) } else if(id=='tuiban'){ curPage.setData({ '__tuiban__.toggleAClass': 'toggleb__class', '__tuiban__.toggleBClass': 'togglea__class', '__tuiban__.toggleValue': 0, }) } else{ curPage.setData({ '__toggle__.toggleAClass': 'toggleb__class', '__toggle__.toggleBClass': 'togglea__class', '__toggle__.toggleValue': 0, }) } } curPage.setB = function (e) { var id = e.target.id if (id == 'quhuo') { curPage.setData({ '__quhuo__.toggleAClass': 'togglea__class', '__quhuo__.toggleBClass': 'toggleb__class', '__quhuo__.toggleValue': 1, }) } else if (id == 'tuiban') { curPage.setData({ '__tuiban__.toggleAClass': 'togglea__class', '__tuiban__.toggleBClass': 'toggleb__class', '__tuiban__.toggleValue': 1, }) } else { curPage.setData({ '__toggle__.toggleAClass': 'togglea__class', '__toggle__.toggleBClass': 'toggleb__class', '__toggle__.toggleValue': 1, }) } } return this } return new Toggle()}module.exports = { Toggle: ToggleClass}
样式我直接写在了项目app.wxss上了。
调用的时候,需要在调用页面wxml上加
<import src="../../../utils/toggle/toggle.wxml"/>
在页面需要使用的地方加上(这里data=”{{…toggle}}”是关键,传递数据就是在这里传)
<template is="toggle" data="{{...__toggle__}}"/>
在app.js文件上加
let { Toggle } = require('utils/toggle/toggle.js')
在
App({ Toggle })
在被调用页面js加上,在onload事件里面初始化控件
let app = getApp()onLoad: function (options) { new app.Toggle() }
阅读全文
0 0
- 小程序组件开发坑
- 小程序开发踩坑-input组件
- 小程序开发踩坑—button组件
- 10款优秀组件类小程序开发demo推荐
- 小程序 组件
- 小程序组件实现
- 小程序 基础组件
- 小程序开发补坑
- 小程序七:组件之表单组件
- 小程序基础组件与导航组件
- 小程序十:媒体组件
- 小程序组件居中问题
- 微信小程序开发之小程序组件label标签解读以及分析实例
- 微信小程序中开发的小坑
- 小程序开发遇到的坑
- 小程序开发有哪些坑
- 小程序开发填坑汇总贴
- 开发小程序的一些坑
- 关于Objective-C中的@property以及属性分析
- Mybatis笔记
- Codeforces 242E- XOR on Segment(线段树)
- ps -ef |grep 输出的具体含义
- OpenStack Tacker介绍
- 小程序组件开发坑
- Java™ Security Overview
- 动态规划问题1
- 实验三:十进制转换成二进制数(顺序栈)
- 如何准确地确定 HTTP 请求的来源
- Jmeter通过POST方法测试用户登录接口
- hdu 5293 Tree chain problem【树状dp+dfs序+树状数组】
- mybatis动态sql查询
- Detection Algorithms for Communication Systems Using Deep Learning笔记