• 技术文章 >web前端 >js教程

    在微信小程序中如何实现给template模板传递数据

    亚连亚连2018-06-20 11:30:00原创693
    这篇文章主要介绍了微信小程序实现给嵌套template模板传递数据的方式,结合实例形式总结分析了微信小程序嵌套template模板的定义、调用、参数传递及相关使用技巧,需要的朋友可以参考下

    本文实例总结了微信小程序实现给嵌套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>

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    在JS中如何实现网页版计算器

    使用JS如何实现小球抛物线轨迹运动

    在axios中如何实现cookie跨域

    使用JavaScript如何实现二叉树遍历

    在JavaScript中如何实现弹性效果

    以上就是在微信小程序中如何实现给template模板传递数据的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:在vue中如何引入微信sdk接口 下一篇:在webpack与SPA中如何管理CSS等资源
    千万级数据并发解决方案

    相关文章推荐

    • JavaScript高级语法学习之严格模式• angular学习之浅析HttpClientModule模块• angular学习之路由模块浅析• 浅谈Node第三方框架Express的使用方法• JavaScript学习理解之JSON(总结分享)
    1/1

    PHP中文网