微信小程序|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}}使用对象的属性。

你可能感兴趣的:(微信小程序学习,小程序,javascript,字符串)