微信小程序给嵌套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的写法,同第一种。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值