转发:微信小程序-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 属性,作为模板的名字.然后 ...
随机推荐
- Linux车载系统的开发方向
眼下Linux基金会推出了基于Tizen 开源的车载系统平台Automotive Grade Linux (AGL), 眼下早期版本号的AGL已提供下载. UI用HTML5和JavaScript编程. ...
- 解决“listView点击一个Item,另外几个Item也跟着改变”的问题
如图所看到的: 我点击Item,右边的checkBox就会对应的变化.可是当我第一次做的时候.点击第一个Item,右边的checkBox变为绿色,可是当我listView往下拉的时候,发现以下也有是绿 ...
- Rete算法
RETE算法介绍一. rete概述Rete算法是一种前向规则快速匹配算法,其匹配速度与规则数目无关.Rete是拉丁文,对应英文是net,也就是网络.Rete算法通过形成一个rete网络进行模式匹配,利 ...
- MySQL Workbench update语句错误Error Code: 1175.
rom:http://www.tuicool.com/articles/NJ3QRz MySQL update error: Error Code: 1175. You are using safe ...
- [16] 螺旋面(Spire)图形的生成算法
顶点数据的生成 bool YfBuildSpireVertices ( Yreal radius, Yreal assistRadius, Yreal height, Yuint slices, Yu ...
- freetds简介、安装、配置及使用介绍
什么是FreeTDS 简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库! FreeTDS 是一个开源(如果你喜欢可以称为自由)的程序库,是TDS(表列数据流 )协议 ...
- unity forward renderer的 base pass rt设置
一般他都是用 RenderTexture::SetActive()来设置rt 但是 forward path 的opaque我跟了好久找不到这个setactive 在dorender之前有setupR ...
- Objective-C-Category类别
Object-C开发的时候有的时候会用到Category类,类似于Java和C#中扩展类,就是如果你觉得如果你觉得常用的方法在String中没有,可以根据业务需求和个人喜好写一个扩展类,然后在其中补充 ...
- Convert Sorted Array to Binary Search Tree leetcode java
题目: Given an array where elements are sorted in ascending order, convert it to a height balanced BST ...
- WebChromeClient 简介 API 案例
代码位置:https://github.com/baiqiantao/WebViewTest.git 设计思想理解 在WebView的设计中,不是什么事都要WebView类干的,有相当多的杂事是分给其 ...