介绍
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. C语言中连接器介绍

    在C语言中.一个重要的思想就是分别编译.即若干个源程序能够在不同的时候单独进行编译.然后在恰当的时候整合到一起.可是连接器通常是与C编译器分离的,连接器怎样做到把若干个C源程序合并成一个总体呢? 典型 ...

  2. CS 寄存器 和 IP 寄存器

    下面将要介绍的是一组非常非常重要的寄存器,即 CS:IP . CS:IP 两个寄存器指示了 CPU 当前将要读取的指令的地址,其中  CS 为代码段寄存器,而   IP 为指令指针寄存器 . 什么叫做 ...

  3. Java项目持续集成检查项

    1)   检查项:使用Super POM. 2)   检查项:GroupID应该以特定名称开头.3)   检查项:版本号符合规范.版本号必须是三段数字,之后加或不加-SNAPSHOT.4)   检查项 ...

  4. android使用百度地图SDK获取定位信息

    本文使用Android Studio开发. 获取定位信息相对简单.我们仅仅须要例如以下几步: 第一步,注冊百度账号,在百度地图开放平台新建应用.生成API_KEY.这些就不细说了,请前往这里:titl ...

  5. PHP 反射 初步测试

    <?php //php反射机制 /* //用途 1 该扩展分析php程序,导出或提取出关于类,方法,属性,参数等详细信息,包括注释 //Reflection可以说是对php库函数: /class ...

  6. Quartz.NET开源作业调度框架系列(三):IJobExecutionContext 参数传递-转

    前面写了关于Quartz.NET开源作业调度框架的入门和Cron Trigger , 这次继续这个系列, 这次想讨论一下Quartz.NET中的Job如何通过执行上下文(Execution Conte ...

  7. Ubuntu 16.04 编译安装 ss

    在网上没有找到合适的适合ubuntu的ss客户端, 考虑到ss的编译安装其实就带了ss-local这样的客户端, 于是在Ubuntu下编译安装了ss. 首先去github上下载最新的安装包 https ...

  8. android软键盘弹出引起的各种不适终极解决方案

    android软键盘弹出引起的各种不适终极解决方案 以下描述如何解决ListView高度小于0时出现的UI问题. 创建RelativeLayout的子类TxrjRelativeLayout publi ...

  9. jenkins shell脚本自动化构建阿里云k8s上应用

    #!/bin/bash source /etc/profile cd /mnt/workspace/weifeng-ui-pre/ npm i && npm run build rm ...

  10. ios 中UIViewController的分类

    #import <UIKit/UIKit.h> #define TOPVIEWTAG 0x10000 // 导航栏的图片 @interface UIViewController (Chnb ...