介绍
template是微信小程序提供的模板,可以在模板中定义代码片段,然后在不同的地方调用。

简单使用
定义template
因为项目中可能会需要到不止一个template,所以最好新建一个文件夹来存放template相关的文件。注意这里只是单独的创建各个文件,并不是创建Page或者Component.
创建好之后的文件目录如图:

这里演示一个用template当列表的item,然后可以点击并获取到值。 
然后开始写templates.wxml文件,这里面可以有多个template代码块,如代码所示:

<!--列表页item  -->
<template name="template01">
<view class='item' bindtap='onclick' data-item='{{item}}'>
{{item}}
</view>
</template> <template name="template02">
<view>
this is template02 and nothing to do
</view>
</template>

可以看出template和普通的标签定义差不多,但是每个template必须为它设置name,因为在使用的时候可以是根据这个name的值来找到对应关系的。

然后开始布局,templates.wxss文件代码:

.item{
background: beige;
padding: 10px;
display: flex;
flex:;
justify-content: center;
align-items: center;
margin: 20px 10px 10px 10px
}

最后完成template里面的逻辑事件,templates.js文件代码:

var temp = {
onclick: function (event) {
console.log("点击了" + event.currentTarget.dataset.item)
}
}
//导出,供外部使用
export default temp

使用template

经过上面几步template的定义工作就基本完成了,下面开始具体的使用,首先在需要使用template的文件中引入templates.wxml文件,list.wxml文件的具体代码:

<!--引入wxml文件  -->
<import src="../templates/templates.wxml"/> <view wx:for="{{arrys}}" wx:key="">
<view class='item' bindtap='itemclick' data-item='{{item}}'>
<!--和普通标签一样使用,is对应的是templates中的name data是传入template值 -->
<template is="template01" data="{{item}}"/>
</view>
</view>

然后在list.wxss中引入template中用到的样式。

@import "../templates/templates.wxss";

最后在list.js中引入templates的js文件:

import templates from '../templates/templates'

到这里templates作为列表的item就可以显示了,那具体的点击事件是怎么处理的呢? 
我们看这一段:

<view class='item' bindtap='itemclick' data-item='{{item}}'>
<!--和普通标签一样使用,is对应的是templates中的name data是传入template值 -->
<template is="template01" data="{{item}}"/>
</view>

给template的外层view设置了一个点击事件,点击事件的具体代码:

  itemclick(event){
templates.onclick(event)
}

其实外层view的点击事件自己什么也没做,只是调用了template中的点击事件onclick,并且把当前事件传递给了它。

  onclick: function (event) {
console.log("点击了" + event.currentTarget.dataset.item)
}

这样template的点击事件和传值就实现了。 
效果图:

转 : https://blog.csdn.net/wangcheng_/article/details/79764584

微信小程序 template添加点击事件的更多相关文章

  1. 微信小程序 template模板使用

    参考文章: 微信小程序-template模板使用

  2. 微信小程序循环列表点击每一个单独添加动画

    首先,咱们看一下微信小程序动画怎么实现,我首先想到的是anime.js,但是引入之后用不了,微信小程序内的css也无法做到循环的动态,我就去找官方文档看看有没有相应的方法,哎,还真有 点击这里查看 微 ...

  3. 微信小程序学习笔记二 数据绑定 + 事件绑定

    微信小程序学习笔记二 1. 小程序特点概述 没有DOM 组件化开发: 具备特定功能效果的代码集合 体积小, 单个压缩包体积不能大于2M, 否则无法上线 小程序的四个重要的文件 *js *.wxml - ...

  4. 第一个微信小程序(实现点击一个按钮弹出toast)

    今天根据网上的教程搭建了微信小程序的环境,然后看文档做了一个简单的小应用. 项目的目录是这个样子的: app.js.app.json.app.wxss是全局文件,必不可少的文件.定义在app.wxss ...

  5. 微信小程序template模板与component组件的区别和使用

    前言: 除了component,微信小程序中还有另一种组件化你的方式template模板,这两者之间的区别是,template主要是展示,方法则需要在调用的页面中定义.而component组件则有自己 ...

  6. 微信小程序——template详细使用

    WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用减少冗余代码. 1.1定义模板 1.1.1.创建模板文件夹  1.1.2.使用 name 属性,作为模板的名字.然后 ...

  7. 微信小程序template富文本插件image宽度被js强制设置

    这段时间一直做微信小程序,过程中遇到了一个问题,这个问题一直没有得到完美的解决. 问题描述: 在Web编程中经常会引入template插件,这个插件是封装好,我们通常的做法是直接引入,配置简单,好用, ...

  8. 微信小程序关于tabbar点击切换数据不刷新问题

    微信小程序中经常遇到的需求就是我提交了一个表单或者进行了一个操作,需要在我的个人中心页面中实时显示出来,但是小程序中的tabbar切换类似于tab切换 并不会进行页面刷新请求 所以总是会造成一些数据更 ...

  9. 微信小程序页面阻止默认滑动事件

    在页面上要加入一个悬浮的按钮,这个按钮需要可以拖动,在元素中使用catchtouchstart,catchtouchmove,catchtouchend来控制悬浮按钮的拖动,但是在ios系统中,微信小 ...

随机推荐

  1. achartengine(Google给android提供的画图工具包)的介绍和使用

    AChartEngine(ACE)是Google为Android提供的一个开源绘制工具包.它集成了绘制多种图形的功能:折线图.散点图.气泡图.柱状图.饼图.仪表图等图形. 下载地址:http://do ...

  2. 代码实现分析mpeg-2文件

    1.概述 把上一篇文章中讲到的mpeg-2文件结构分析用代码实现,结合mpeg-2文件分析.才easy看懂. 2.代码 /* *本程序主要分析MPEG-2文件 *作者:缪国凯(MK) *8214860 ...

  3. Git 推送和删除远程标签

    事实上Git 的推送和删除远程标签命令是相同的,删除操作实际上就是推送空的源标签refs: git push origin 标签名 相当于 git push origin refs/tags/源标签名 ...

  4. 从头開始学 RecyclerView(三) 封装简化

    前言 上一篇的代码,也是基于这些封装的. RV的封装,跟曾经的listView之类的封装,大同小异. 这里,从@devwiki 处,将代码搬过来.基本无改动 BaseHolder的优化 使ViewHo ...

  5. LeetCode222 Count CompleteTree Nodes(计算全然二叉树的节点数) Java 题解

    题目: Given a complete binary tree, count the number of nodes. Definition of a complete binary tree fr ...

  6. Linux 系统 fstab错误导致系统无法启动的修复

    fstab错误的修复 vim /etc/fstab/dev/sda6 /mnt xfs defaults 0 0重启后系统无法启动,等待一段时间后输入root的密码可进入单用户模式,修改fstab后可 ...

  7. 通过Intent传递对象

    BluetoothDevice device = data.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 在蓝牙开发中,通过intent(data ...

  8. 1A2B猜数字

    知乎链接 维基百科 问题描述 又名猜数字. 一方准备从0到9十个数字里抽出4个数,随机排列,另一方同样以这样的方法回应四个数.位置相同数字相同为A,数字出现,位置不同为B,然后计数. 例1234 56 ...

  9. 【RS】RankMBPR:Rank-Aware Mutual Bayesian Personalized Ranking for Item Recommendation - RankMBPR:基于排序感知的相互贝叶斯个性化排序的项目推荐

    [论文标题]RankMBPR:Rank-Aware Mutual Bayesian Personalized Ranking for Item Recommendation ( WAIM 2016:  ...

  10. iOS 10 之 网络权限带来的坑

    症状 iOS 10 之后,陆陆续续地有用户联系我们,说新机第一次安装.第一次启动的时候,app 首屏一片空白,完全没数据.kill 掉重新打开就好了. 一开始以为是用户网络情况不好,但随着越来越多的用 ...