微信小程序|wxs中能否使用ES6模板字符串

1、模板字符串

模板字面量是允许嵌入表达式的字符串字面量。
模板字符串使用反引号 (``) 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(${expression})的占位符。

var a = 5;
var b = 10;
console.log(`Fifteen is ${a + b} and
not ${2 * a + b}.`);

还可以对变量名称进行动态设置:

let a = 1;
let b = value;
let param = event.detail;
this.setData({
   [`timeDate${a}.${b}`]: param
});

2、wxs

WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。

详细参考官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/

3、需求

wxml 怎么获取动态变量名?

参考小程序社区中两篇问题讨论。
在这里插入图片描述

(1)wxml 怎么获取动态变量名?

(2)怎么才能在wxml中写动态变量?

方案一(wxs中使用模板字符串—失败):

wxs好像不支持模板字符串,不可以动态拼接wxml变量。
---创建动态的对象名,然后再获取的方式实现动态变量。
<wxs>
  var joinval = function(a, b){

    return [`timeDate${a}.${b}`];
  }; 

 module.exports = {
    joinval: joinval
  };
</wxs>

方案二(创建动态对象名—成功):

动态变量名转换为动态对象名,可以达到。或者说wxml数据绑定本质就是对象键值对的绑定。
比如:
js中:let index = e.currentTarget.dataset.idx; // 动态变量名
  
    let timeData = this.data.timeData;
    // 增加或修改一个动态的json对象,使用[index]包裹变量名
    timeData[[index]] = e.detail; 
    this.setData({
      timeData
    });
wxml中:可以{{timeData[index].options}}使用对象的属性。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值