转发:微信小程序-template模板使用
转载于CSDN--【向朔1992】处。(部分内容根据实际情况有所修改)
小程序实现主页面调用次级页面的wxml页面内容,如下图:
根据上图,我们可以将图片和图片信息作为一个goodsList.wxml 次页面,然后整个页面当做主页面home.wxml页;
模板
一、定义模板
1、新建一个template文件夹用来管理项目中所有的模板;
2、新建一个courseList.wxml文件来定义模板;
3、使用name属性,作为模板的名字。然后在<template/>
内定义代码片段。
下面是goodsList.wxml代码:区分左右两边的数据的是下面第二行的三元运算符
<template name="goodsList">
<view class="goods-item{{index % 2 == 0?' odd':''}}">
<view class="goods">
<view class="goods-tag ten" />
<navigator url="../xiangqing/xiangqing">
<image class="goods-image" src="{{goods.goods.imgUrl}}" />
</navigator>
<view class="desc-wrapper">
<view class="goods-desc">{{goods.goods.name}}</view>
</view>
</view>
<view class="operating">
<view class="tips">状态<span>{{goods.takeRate * 100}}%</span></view>
<view class="progress" style="width: calc(100% - 76px);"></view>
<view class="progress-take" style="width: calc((100% - 76px) * {{goods.takeRate}} );"></view>
<view class="btn">加入清单</view>
</view>
</view>
</template>
二、使用模板
1、使用 <import scr=" "> 标签,在主页面引入需要使用的次级模板wxml
2、将模板所需要的 data 传入(这里的数据,我们在home.js文件中定义好),一般我们都会使用列表渲染。
<import src="tpl/goodsList.wxml"/>
<block wx:for="{{goodsList}}">
<template is="goodsList" data="{{index:index,goods:item}}"/>
</block>
解释:1)首先引入次级模板文件,然后像普通的后台语言如php的模板引擎一样,wx:for也可以看成是一个模板引擎,wx:for就是解析数组,循环打印变量。
2)is作用就是确认引用模板,item就是数组的当前变量,index就是数组元素的下标。
3)上面的wx:for="{{goodsList}}",是js文件的多维数组数据,不是模板文件名,这里很重要。
4)当然,你也可以这样写:
<import src="tpl/goodsList.wxml"/>
<block wx:for="{{goodsList}}">
<template is="goodsList" data="{{...item}}"/>
</block>
data
是要模板渲染的数据,data="{{...item}}"
写法是ES6的写法,item
是wx:for
当前项,...
是展开运算符,在模板中不需要再{{item.goods}}
而是直接{{goods}}
。
三、模板样式
1、在新建模板的时候同时新建一个courseList.wxss
的文件,与CSS同样的写法控制样式。
2、在需要使用模板的页面 .wxss
文件中import
进来;或者直接在app.wxss中引入,这样只需要一次引入,其他文件就不用引入了。
@import "../template/courseList.wxss";
四、主页面home.wxml示例:
...
<view class="sort-panel" style="position:{{sortPanelPos}};top:{{sortPanelTop}}px">
<view class="sort-item comb on">人气</view>
<view class="sort-item">最新</view>
<view class="sort-item">进度</view>
<view class="sort-item">
</view>
</view>
<view class="goods-panel">
<import src="tpl/goodsList.wxml"/>
<block wx:for="{{goodsList}}">
<template is="goodsList" data="{{index:index,goods:item}}"/>
</block>
</view>
...
转发:微信小程序-template模板使用的更多相关文章
- 微信小程序 template模板使用
参考文章: 微信小程序-template模板使用
- 微信小程序template模板与component组件的区别和使用
前言: 除了component,微信小程序中还有另一种组件化你的方式template模板,这两者之间的区别是,template主要是展示,方法则需要在调用的页面中定义.而component组件则有自己 ...
- [转]微信小程序-template模板使用
本文转自:http://blog.csdn.net/u013778905/article/details/59646241 如下图,我在做华企商学院小程序的时候,课程搜索结果页和课程列表页结构是完全一 ...
- 微信小程序-template模板
============================= 构建template模板 ============================= 1.分析得出共为 ...
- 微信小程序发送模板消息
微信小程序发送模板消息 标签(空格分隔): php 看小程序文档 [模板消息文档总览]:https://developers.weixin.qq.com/miniprogram/dev/framewo ...
- 微信小程序开发--模板(template)使用,数据加载,点击交互
微信小程序视图层提供了 模板(template),可以在模板中定义代码片段,然后在不同的地方调用.结果在数据渲染那懵逼了.按照官网上对模板的说明和对数据的加载. 1.定义模板 使用name属性,作为模 ...
- 微信小程序开发——模板中加载html代码
最新方法可以使用微信小程序提供的 rich-text (富文本)组件直接写解析html,详见 rich-text: <rich-text class='f13 c_9' nodes=" ...
- 微信小程序 template添加点击事件
介绍template是微信小程序提供的模板,可以在模板中定义代码片段,然后在不同的地方调用. 简单使用定义template因为项目中可能会需要到不止一个template,所以最好新建一个文件夹来存放t ...
- 微信小程序——template详细使用
WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用减少冗余代码. 1.1定义模板 1.1.1.创建模板文件夹 1.1.2.使用 name 属性,作为模板的名字.然后 ...
随机推荐
- EF Code First 学习笔记:表映射 多个Entity到一张表和一个Entity到多张表
多个实体映射到一张表 Code First允许将多个实体映射到同一张表上,实体必须遵循如下规则: 实体必须是一对一关系 实体必须共享一个公共键 观察下面两个实体: public class Per ...
- [GIt] 团队工作效率分析工具gitstats
copy : http://www.cnblogs.com/ToDoToTry/p/4311637.html 如果你是团队领导,关心团队的开发效率和工作激情:如果你是开源软件开发者,维护者某个repo ...
- linux下添加分区并挂载目录、卸载并删除分区
添加分区并挂载目录 Linux的硬盘识别: 一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘 设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息. 1.关闭服务器加上新硬盘 ...
- 稀疏数据压缩查询方法:Rank & Select 操作
1.稀疏数据的例子 对于网络图对应的节点关联矩阵.数据生成的哈希表等,这些存储起来是稀疏的,这样我们就会想到需要压缩空间.但是在压缩存储空间的同时,还要支持高效的查询操作. Rank & Se ...
- Java基础(十一):接口
一.接口: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 接口并不是 ...
- python3 UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f9e0' in position 230: illegal multibyte sequence
最近在保存微博数据到(csv文件)时报错: UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f9e0' in positio ...
- CI框架入门中的简单MVC样例
最简单的CI模型: 注意:模型须要用到数据库 配置文件在appcation/config.php 这里我们要用到数据库,须要将databases.php中的 相关參数填写一下,详细不再赘述. 直接进入 ...
- Android -- Fragment动画异常Unknown animation name: objectAnimator
异常 Caused by: java.lang.RuntimeException: Unknown animation name: objectAnimator 异常代码 FragmentTransa ...
- 【架构】SpringCloud JHipster -微服务相关资料
SpringCloud-微服务相关资料 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结 - zeb_perfect的专栏 - 博客频道 - ...
- window系统下调度数据库类型资源库中的kettle job
已经存在kettle的一个资源库enfo,在目录/works/wxj下面有一个job (testmailsuccess.kjb)如何实现手工在kettle外部执行此job和让系统每天定时的调用此job ...