天天看點

微信小程式|wxs中能否使用ES6模闆字元串1、模闆字元串2、wxs3、需求

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 怎麼擷取動态變量名?

參考小程式社群中兩篇問題讨論。

微信小程式|wxs中能否使用ES6模闆字元串1、模闆字元串2、wxs3、需求

(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}}使用對象的屬性。
           

繼續閱讀