首页 > 编程 > JavaScript > 正文

微信小程序实现给嵌套template模板传递数据的方式总结

2019-11-19 14:42:44
字体:
来源:转载
供稿:网友

本文实例总结了微信小程序实现给嵌套template模板传递数据的方式。分享给大家供大家参考,具体如下:

一、template模板调用的数据是单一形态时:

indexTemplate模板:

<import src="../lookAndCollect-template/lookAndCollect-template.wxml" /><template name="indexTemplate"> <view class="user-info">  <image class="avatar" src="{{avatar}}"></image>  <text class="name">{{name}}</text>  <text class="date">{{date}}</text> </view> <view class="news">  <text class="news-title">{{title}}</text>  <image class="news-img" src="{{newsImg}}"></image>  <text class="news-content">{{content}}</text> </view> <template is="reviewAndCollect" data="{{review,look}}"></template></template>

lookAndCollect模板:

<template name="lookAndCollect-template"> <view class="lookAndCollect-template">  <view class="lookAndCollect-template-review">   <image src="/smallApp/images/icon/view.png"></image>   <text>{{look}}</text>  </view>  <view class="lookAndCollect-template-look">   <image src="/smallApp/images/icon/chat.png"></image>   <text>{{collect}}</text>  </view> </view></template>

indexTemplate模板在index.wxml中的引用:

  <block wx:for="{{newsData}}" wx:for-item="newsItem">   <view class="item">    <template is="indexTemplate" data="{{...newsItem}}" />   </view>  </block>

index.wxml对应的index.js写法:

var newsDataList = require("../index-data.js");Page({  data: {  },  onLoad: function (option) {    this.setData({      newsData: newsDataList.dataList    });  }})

模板中使用单一形式的数据:

var news_data = [  {    listId: "0",    avatar: "/smallApp/images/avatar/1.png",    name: "我是大猫猫",    date: "16分钟前",    title: "搞事情?法国招聘新特工 会汉语成必备条件",    newsImg: "/smallApp/images/post/crab.png",    content: "是的,你没看错,据法国《费加罗报》报道,法国境外安全总局(DGSE)欲在2019年前招募600名新特工,而且新的特工必须年轻、有高等文凭,会多国语言,并且熟悉电脑与互联网。",    review: "0",    look: "30"  },  {    listId: "1",    avatar: "/smallApp/images/avatar/2.png",    name: "风口上的猪",    date: "1天前",    title: "顺丰控股上市次日盘中涨停 离首富差4个涨停",    newsImg: "/smallApp/images/post/bl.png",    content: "根据之前借壳方鼎泰新材发布的公告,该公司定增完成后,第一大股东将变更为深圳明德控股发展有限公司(简称“明德控股”),持股比例为64.58%,后4名分别为宁波顺达丰润投资管理合伙企业(有限合伙)…",    review: "100",    look: "380"  }];module.exports = {  dataList: news_data}

如果需要在嵌套的模板中传入多个数据,可以将每个数据用逗号隔开。

二、嵌套模板调用包括object对象时的调用方法:

模板中使用的数据review和look以对象的形式呈现时:

var news_data = [  {    listId: "0",    avatar: "/smallApp/images/avatar/1.png",    name: "我是大猫猫",    date: "16分钟前",    title: "搞事情?法国招聘新特工 会汉语成必备条件",    newsImg: "/smallApp/images/post/crab.png",    content: "是的,你没看错,据法国《费加罗报》报道,法国境外安全总局(DGSE)欲在2019年前招募600名新特工,而且新的特工必须年轻、有高等文凭,会多国语言,并且熟悉电脑与互联网。",    reviewAndCollect {      review: "0",      look: "30"    }  },  {    listId: "1",    avatar: "/smallApp/images/avatar/2.png",    name: "风口上的猪",    date: "1天前",    title: "顺丰控股上市次日盘中涨停 离首富差4个涨停",    newsImg: "/smallApp/images/post/bl.png",    content: "根据之前借壳方鼎泰新材发布的公告,该公司定增完成后,第一大股东将变更为深圳明德控股发展有限公司(简称“明德控股”),持股比例为64.58%,后4名分别为宁波顺达丰润投资管理合伙企业(有限合伙)…",    reviewAndCollect {      review: "120",      look: "300"    }  }];module.exports = {  dataList: news_data}

indexTemplate模板

<import src="../lookAndCollect-template/lookAndCollect-template.wxml" /><template name="indexTemplate"> <view class="user-info">  <image class="avatar" src="{{avatar}}"></image>  <text class="name">{{name}}</text>  <text class="date">{{date}}</text> </view> <view class="news">  <text class="news-title">{{title}}</text>  <image class="news-img" src="{{newsImg}}"></image>  <text class="news-content">{{content}}</text> </view> <template is="reviewAndCollect" data="{{reviewAndCollect}}"></template></template>

lookAndCollect模板:

<template name="lookAndCollect-template"> <view class="lookAndCollect-template">  <view class="lookAndCollect-template-review">   <image src="/smallApp/images/icon/view.png"></image>   <text>{{reviewAndCollect.look}}</text>  </view>  <view class="lookAndCollect-template-look">   <image src="/smallApp/images/icon/chat.png"></image>   <text>{{reviewAndCollect.collect}}</text>  </view> </view></template>

ps: indexTemplate模板在index.wxml中的引用,以及index.wxml对应的index.js的写法,同第一种。

希望本文所述对大家微信小程序开发有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表