博客列表 >小程序 template传递数据两种方式/setData修改数组或对象

小程序 template传递数据两种方式/setData修改数组或对象

鑫仔的博客
鑫仔的博客原创
2018年11月29日 19:13:072847浏览

根据官方给的文档知道template的用法:

第一步:先创建一个模板文件夹(templateA),只需要写wxml和wxss两个文件。

templateA.wxml文件:

12508684-13ec8fe87acf57a8.png

templateA.wxml

templateA.wxss文件:写在wxml用到的class样式

第二步:使用模板

12508684-82a337b07bcd59eb.png

传递数据方法1

先说一下怎么引入模板,假设我们在index页面中使用templateA模板,首先我们在index.wxml文件中引入templateA.wxml文件,格式:<import src="../templateA/templateA.wxml" />写在最顶部噢!然后在你需要的地方把模板写进去,格式:<template is='templateA' data="{{...item}}" />这里面的data传值就是官方给的方式。最后把templateA.wxss文件放在index.wxss中,格式:@import "../templateA/templateA.wxss";注意:item对象是写在index.js中的data里面!!!

在官方给的data的传递数据中,如果想修改item对象里的属性值(比如msg属性),可以用以下方法实现:首先我们要知道item是一个对象,index、msg、time分别为其三个属性。写成...item的形式是为了方便在模板中的变量书写不用写上对象名,直接用属性。如果把3个点去掉写成data="{{item}}"的形式的话,在模板中书写就需要带上对象名,例如{{item.msg}}。

然后我们在index.js的onload方法中修改属性值:

var msg2 = "item.msg";      //先用一个变量,把item.msg用字符串拼接起来

  this.setData({

[msg2]:'我被修改了';          //使用[]将变量包起来,为其赋值

})

扩展一下:如果是对象数组的一个属性值

12508684-deba532b56cf7bed.png

数据


12508684-deba532b56cf7bed.png

修改数据

接下来我们说说第二种data的数据传递方式,也可以认为是传多个数据到模板

1、<template is='templateA' data="{{...item,index2:index2,index3:index3}}" />

用逗号分开,item 是对象,index2和index3是单个数据,要用键值对

2、<template is='templateA' data="{{...item,...{index2:index2,index3:index3} }}" />

用逗号分开,item 是对象,把index2和index3也写成对象,注意最后两个花括号和前面的花括号要隔开,不然会报错


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议